Emacs: Upcase Sentences 🚀
Here's emacs command to fix letter case of sentences. That is, any letter after a period (full stop), question mark, exclamation, will be capitalized.
This saves you typing. You can keep typing without pressing Shift to type uppercase letters. After you finished typing a paragraph, you can press a button and have the letters capitalized.
put this in your Emacs Init File:
(defun xah-upcase-sentence () "Upcase first letters of sentences of current block or selection. URL `http://xahlee.info/emacs/emacs/emacs_upcase_sentence.html' Version: 2020-12-08 2020-12-24 2021-08-13 2022-05-16 2022-08-27" (interactive) (let (xp1 xp2) (let ((xbds (xah-get-bounds-of-block-or-region))) (setq xp1 (car xbds) xp2 (cdr xbds))) (save-restriction (narrow-to-region xp1 xp2) (let ((case-fold-search nil)) ;; after period or question mark or exclamation (goto-char (point-min)) (while (re-search-forward "\\(\\.\\|\\?\\|!\\)[ \n]+ *\\([a-z]\\)" nil :move) (upcase-region (match-beginning 2) (match-end 2)) (overlay-put (make-overlay (match-beginning 2) (match-end 2)) 'face 'highlight)) ;; after a blank line, after a bullet, or beginning of buffer (goto-char (point-min)) (while (re-search-forward "\\(\\`\\|• \\|\n\n\\)\\([a-z]\\)" nil :move) (upcase-region (match-beginning 2) (match-end 2)) (overlay-put (make-overlay (match-beginning 2) (match-end 2)) 'face 'highlight)) ;; for HTML. first letter after tag (when (or (eq major-mode 'xah-html-mode) (eq major-mode 'html-mode) (eq major-mode 'sgml-mode) (eq major-mode 'nxml-mode) (eq major-mode 'xml-mode) (eq major-mode 'mhtml-mode)) (goto-char (point-min)) (while (re-search-forward "\\(<title>[ \n]?\\|<h[1-6]>[ \n]?\\|<p>[ \n]?\\|<li>[ \n]?\\|<dd>[ \n]?\\|<td>[ \n]?\\|<br ?/?>[ \n]?\\|<figcaption>[ \n]?\\)\\([a-z]\\)" nil :move) (upcase-region (match-beginning 2) (match-end 2)) (overlay-put (make-overlay (match-beginning 2) (match-end 2)) 'face 'highlight)))) (goto-char (point-max))) (skip-chars-forward " \n\t")))
requires package Emacs: xah-get-thing.el