我尝试将Emacs配置为在编辑XML文档时不激活自动填充。
在我的.emacs
文件中,我添加了一个钩子,以便文本模式默认启用自动填充:
(add-hook 'text-mode-hook 'turn-on-auto-fill)
我已在我的加载路径中添加了一个目录:
(add-to-list 'load-path "~/.emacs.d/lisp/")
在该目录中,我为此工作站编写了一个文件xml.el
,我已经尝试了以下各项,但无济于事:
(add-hook 'xml-mode-hook 'turn-off-auto-fill)
(add-hook 'xml-mode-hook 'auto-fill-mode)
(remove-hook 'xml-mode-hook 'turn-on-auto-fill)
(remove-hook 'xml-mode-hook 'auto-fill-mode)
如何禁用XML模式下的自动填充?
编辑:看来这是由我上面提到的text-mode-hook
引起的。如何在nxml-mode
中覆盖此挂钩?
答案 0 :(得分:1)
啊,nxml-mode
来自text-mode
。这对我来说有点令人惊讶(虽然仔细观察,它确实似乎是Emacs中标记语言模式的标准)。
在这种情况下,您可以在nxml-mode-hook
中再次停用(因为text-mode-hook
已经在该点运行了):
(add-hook 'nxml-mode-hook 'turn-off-auto-fill)
(n.b。你在评论中说这对你没有用,但它确实适合我)。
或者只是将您的text-mode-hook
代码更改为以下内容,以便在启用自动填充之前捕获此案例:
(defun my-text-mode-hook ()
"Custom behaviours for `text-mode'."
;; Enable `auto-fill-mode', except in `nxml-mode' (which is derived
;; from `text-mode').
(unless (eq major-mode 'nxml-mode)
(turn-on-auto-fill)))
(add-hook 'text-mode-hook 'my-text-mode-hook)