From 143f1b57acdbb270292e5aad31f3c2e3b8767f0d Mon Sep 17 00:00:00 2001 From: Ryan Kavanagh Date: Mon, 11 May 2015 11:29:45 -0400 Subject: Emacs --- .emacs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to '.emacs') diff --git a/.emacs b/.emacs index f2488ea..222692c 100644 --- a/.emacs +++ b/.emacs @@ -129,3 +129,41 @@ (fset 'yes-or-no-p 'y-or-n-p) (put 'narrow-to-region 'disabled nil) + +;; Sentence-fill hack +;; ================== +;; +;; The macros here are based on emacs/23.3/lisp/textmodes/fill.el.gz. +;; To use them without modifying emacs, you can simply execute `cat +;; hack.el >> ~/.emacs` if you have downloaded this file (say, by +;; git). Otherwise, you can use +;; +;; curl http://fermi.mycloudnas.com/cgit.cgi/fill/plain/hack.el >> ~/.emacs + +(defun auto-fill-by-sentences () + (if (looking-back (sentence-end)) + ;; Break at a sentence + (progn + (LaTeX-newline) + t) + ;; Fall back to the default + (do-auto-fill))) +(add-hook 'LaTeX-mode-hook (lambda () (setq auto-fill-function 'auto-fill-by-sentences))) + +;; Modified from http://pleasefindattached.blogspot.com/2011/12/emacsauctex-sentence-fill-greatly.html +(defadvice LaTeX-fill-region-as-paragraph (around LaTeX-sentence-filling) + "Start each sentence on a new line." + (let ((from (ad-get-arg 0)) + (to-marker (set-marker (make-marker) (ad-get-arg 1))) + tmp-end) + (while (< from (marker-position to-marker)) + (forward-sentence) + ;; might have gone beyond to-marker---use whichever is smaller: + (ad-set-arg 1 (setq tmp-end (min (point) (marker-position to-marker)))) + ad-do-it + (ad-set-arg 0 (setq from (point))) + (unless (or (looking-back "^\\s *") + (looking-at "\\s *$")) + (LaTeX-newline))) + (set-marker to-marker nil))) +(ad-activate 'LaTeX-fill-region-as-paragraph) -- cgit v1.2.3