目标:我希望为所有缓冲区启用show-trailing-whitespace
,只需保存一些。出现问题的例外情况为*Shell Command Output*
及其表兄*Async Shell Command*
。
我通常会show-trailing-whitespace
自定义t
。因此它在所有新缓冲区中都是活动的。
我还希望关闭某些缓冲区,其中最重要的是*Shell Command Output*
。这给我带来了一个问题:
fundamental-mode
。没有fundamental-mode-hook
我可以将此设置挂钩。after-major-mode-change-hook
时会运行fundamental-mode
,但缓冲区会以该模式启动,因此不会运行此挂钩。get-buffer-create
。我知道对于这个特定的例子,我总是可以advise
函数get-buffer-create
,但我尽量避免这种情况。
任何提示?
答案 0 :(得分:2)
您可能最好从另一方面查看问题,并且只在要查看尾随空格的那些模式中设置var。
但我认为你有一个好处:这些shell输出缓冲区不应该使用fundamental-mode
。这可能是M-x report-emacs-bug
答案 1 :(得分:0)
根据接受的答案,这里有一个代码片段,它只为特定模式启用尾随空格突出显示:
(setq-default show-trailing-whitespace nil)
(defun namespace/show-trailing-whitespace ()
"Highlight trailing whitespaces in this buffer."
(setq-local show-trailing-whitespace t))
(dolist (hook '(prog-mode-hook text-mode-hook))
(add-hook hook 'namespace/show-trailing-whitespace))
这个片段基本上取自Steve Purcell's configuration。