【发布时间】:2012-03-20 14:52:12
【问题描述】:
我已将 check-parens 设置为我的文件(尤其是我的 Markdown 文件)的保存挂钩,以提醒我注意括号不平衡。它们几乎总是错误的,这使我免于许多涉及括号内的 Markdown 链接的错误:
;In Markdown files, there are few excuses for unbalanced delimiters
(add-hook 'markdown-mode-hook
(lambda ()
(when buffer-file-name
(add-hook 'after-save-hook
'check-parens
nil t))))
我注意到我在引用时遇到了类似的问题 - 我会删除尾随引号,或者我会忘记适当地转换单引号和双引号等(当我将论文标题放入工具提示时,这有时会与链接错误重叠.) 不平衡的 "s 的原因比 (s 或 )s 的原因更多,这与 check-parens 已经在做的任务相同。所以我自然也希望有 check-parens 封面引号。
但我似乎不能这样做!正确的方法似乎涉及破解 Markdown 语法表,但我尝试的任何方法似乎都不起作用——
(modify-syntax-entry ?\" "(\"" markdown-mode-syntax-table)
(modify-syntax-entry ?\" ")\"" markdown-mode-syntax-table)
(modify-syntax-entry ?\" "$\"" markdown-mode-syntax-table)
(modify-syntax-entry ?\" "^\"" markdown-mode-syntax-table)
(modify-syntax-entry ?\" ".\"" markdown-mode-syntax-table)
(modify-syntax-entry ?' "\"" markdown-mode-syntax-table)
等等等等。他们要么什么都不做,要么导致check-parens在文件的早期吐出错误,据我所知,一切正常。
我已经阅读了有关该主题的许多链接以及modify-syntax-entry 的 C-h f 文档:
- http://www.emacswiki.org/emacs/ParenthesisMatching#toc1
- https://www.gnu.org/software/emacs/manual/html_node/elisp/Syntax-for-Strings.html
- http://www.emacswiki.org/emacs/EmacsSyntaxTable
- http://zvon.org/other/elisp/Output/SEC561.html
- http://www.chemie.fu-berlin.de/chemnet/use/info/elisp/elisp_32.html
- http://www.delorie.com/gnu/docs/elisp-manual-21/elisp_350.html
并在#emacs上询问,无济于事。
(Debian 不稳定版本是 Emacs 24.0.93.1。)
【问题讨论】:
标签: emacs