5

目标:我想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模式更改为时运行 which fundamental-mode,但缓冲区以该模式启动,因此此挂钩未运行。
  • 好像没有办法勾搭get-buffer-create

我知道我总是可以使用这个特定示例advise的功能get-buffer-create,但我会尽量避免这种情况。

有什么提示吗?

4

2 回答 2

2

您最好从另一边看问题,并且仅在您希望看到尾随空格的那些模式下设置 var。

但我认为你有一个很好的观点:这些 shell 输出缓冲区不应该使用fundamental-mode. 大概是时候了M-x report-emacs-bug

于 2012-10-16T14:45:00.970 回答
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 的配置

于 2021-03-01T15:40:03.567 回答