2012-05-27 69 views
4

我對Emacs比較陌生,但一直在試驗它,看它是否值得轉換。我使用Markdown編寫並使用pandoc轉換爲我需要的任何內容。萬一它很重要,我在Ubuntu 12.04上運行Emacs 23.3.1。如何自動填充emacs(markdown-mode)括號中的行?

我是一名人文學科的研究生,所以我的寫作很注重腳註。腳註在pandoc中被格式化爲方括號。我遇到的問題是,自動填充模式似乎忽略了括號內的文字,所以我的腳註最終在頁面上蜿蜒而行 - 而且我能找到的唯一解決方法是自己手動分割線條,每次我編輯段落。這顯然不太理想。 (我也可以放棄內聯腳註,並留下所有單獨的參考資料,但我不想這樣做,而且似乎不應該這樣。)

所以我的問題是,有沒有方式使自動填充模式對括號內的文本操作呢?它有沒有原因不默認?

非常感謝,

- 布賴恩

+0

哪些主要模式是你? (M-x描述模式)。如果您禁用所有本地配置(通過從命令行使用「emacs -Q」啓動emacs),問題是否仍然存在? –

+0

我處於Markdown模式,並且沒有:它似乎僅限於該模式。我已經發送了一封電子郵件給維護者,但如果有人有任何建議,同時我很樂意聽到他們。 –

回答

2

布賴恩,

以下內容添加到您的init文件†,允許在降價模式自動填充打破方括號內線路:

(require 'markdown-mode) 
(defun markdown-nobreak-p() nil) 

我們所做的是重新定義函數「降價-nobreak -p「(最初定義在這裏:http://jblevins.org/git/markdown-mode.git/commit/?id=66566a55)總是返回」無「,這意味着」是的,你可以在這一點上打破「。該函數的原始版本將在方括號內的點返回非零值。

http://www.gnu.org/software/emacs/manual/html_node/emacs/Find-Init.html

+0

謝謝!像魅力一樣工作。 –

0

自動填充本身並不能防止灌裝括號內。可以通過主要模式告訴你這樣做,所以我想這個問題取決於你的主要模式。如果你使用mardown模式,那麼請向維護者報告這個問題。在任何情況下,您可能都想嘗試使用M-q來明確填寫段落,因爲它並不總是遵循與自動填充相同的約定:它比自動填充更明確,但仍比用手放置換行更自動。

+0

謝謝,@Stefan。我發現這確實是Markdown模式導致的問題,我會發郵件給維護人員,弄清楚該怎麼做。我試過'M-q',不幸的是,這也不起作用。 –

3

事實證明,從第1.7節開始的降價模式有意避免在方括號中斷行,以避免斷開鏈接 - 這是Markdown中括號最常用的用法。請參閱http://jblevins.org/projects/markdown-mode/rev-1-7

+0

避免突破方括號的特定提交是:http://jblev​​ins.org/git/markdown-mode.git/commit/?id=66566a55 - 因此您可以重新定義markdown-nobreak-p以始終返回true (哈克,但它應該工作)。 –

+0

@DavidRöthlisberger如果你向我解釋如何在一個單獨的答案中重新定義我自己的安裝,我很樂意將它標記爲我的答案。這將非常有幫助。 –

相關問題