2012-12-17 45 views
2

在Emacs中,如何避免| | |當使用M-q(填充段落)?如何避免| | |內的換行符在Emacs中

https://groups.google.com/forum/?fromgroups#!searchin/gnu.emacs.help/fill-nobreak-predicate/gnu.emacs.help/qNuZZjQnsww/99oJ1fb4OSUJ我發現[[...]],但它不會在打開和關閉的分隔符是相同的工作,以下解決方案:

(defun fill-open-link-nobreak-p() 
    "Don't break a line after an unclosed \"[[link \"." 
    (save-excursion 
    (skip-chars-backward " ") 
    (let ((opoint (point)) 
      spoint inside) 
     (save-excursion 
     (beginning-of-line) 
     (setq spoint (point))) 
     (when (re-search-backward "\\[\\[" spoint t) 
     ;; (message "found") (sit-for 2) 
     (unless (re-search-forward "\\]\\]" opoint t) 
      (setq inside t))) 
     inside))) 

(add-to-list 'fill-nobreak-predicate 'fill-open-link-nobreak-p) 

回答

2

這似乎這樣的伎倆:

(defun odd-number-of-pipes-this-paragraph-so-far() 
    (oddp (how-many "|" (save-excursion (backward-paragraph) (point)) (point)))) 

(add-to-list 'fill-nobreak-predicate 'odd-number-of-pipes-this-paragraph-so-far) 
+0

謝謝,它的工作原理! – asr

+0

不客氣,但您可以通過接受我的答案(單擊左側的空白複選標記)真正地表示您的謝意...... – Sean

+0

感謝您提醒我這樣做。 – asr