2013-12-16 35 views
4

我的emacs「ispell」命令,它運行hunspell,當它碰到我的emacs乳膠緩衝區(我使用AucTEX)中的引用部分時會中斷。用我之前的emacs/Linux發行版,它沒有這個問題。示例:emacs ispell break在乳膠引號

as you like to say, vbfs ``You won't know what to do with yourself.'' 

運行M-x ispell正確標誌vbfs。但是,

as you like to say, ``You won't know what to do with yourself.'' vbfs 

不會註冊任何錯誤。而且,一旦被引用的文本部分被觸擊,似乎會跳過文檔的其餘部分。什麼會造成這種情況?作爲參考,這是我的ispell-tex-skip-alists VAR:

((("\\\\addcontentsline" ispell-tex-arg-end 2) 
    ("\\\\add\\(tocontents\\|vspace\\)" ispell-tex-arg-end) 
    ("\\\\\\([aA]lph\\|arabic\\)" ispell-tex-arg-end) 
    ("\\\\bibliographystyle" ispell-tex-arg-end) 
    ("\\\\makebox" ispell-tex-arg-end 0) 
    ("\\\\e?psfig" ispell-tex-arg-end) 
    ("\\\\document\\(class\\|style\\)" . "\\\\begin[ \n]*{[ \n]*document[ \n]*}")) 
(("\\(figure\\|table\\)\\*?" ispell-tex-arg-end 0) 
    ("list" ispell-tex-arg-end 2) 
    ("program" . "\\\\end[ \n]*{[ \n]*program[ \n]*}") 
    ("verbatim\\*?" . "\\\\end[ \n]*{[ \n]*verbatim\\*?[ \n]*}"))) 

運行GNU Emacs的24.3.1(x86_64的-紅帽Linux的GNU的,GTK +版本3.8.2)的2013年8月14日在buildvm-15.phx2。 fedoraproject.org

回答

1

Ispell將這對引號傳遞給hunspell,它不能應付它。 我們能夠避免與以下建議:

(defadvice ispell-send-string (before kill-quotes activate) 
    (setq string (replace-regexp-in-string "''" " " string))) 

它取代了對引號用空格。這些空格是必需的,以避免錯位對齊。

+0

太棒了!我必須知道,你是怎麼想出這個解決方案的?這些知識從哪裏來,我如何得到它? ;) – WorldsEndless

+0

我已經做了一些研究之前http://stackoverflow.com/questions/20609172/replacing-i-with-i-using-emacs-ispell/20671547#20671547。我在工作中使用emacs來分析自動生成的程序輸出。因此,我寫了很多特殊的elisp代碼。這樣就不可避免地變得更加熟悉elisp。如果您在查看其他人的問題並在emacs elisp info手冊和軟件包源代碼的幫助下進行調查,您會學到很多東西。在某些場合,我寫了一些代碼作爲答案,現在我正在爲自己使用它。 // 聖誕快樂和新年快樂! – Tobias

+0

@WorldsEndless如果它解決了您的問題,請不要忘記接受此解決方案。 – Thomas