如何仅为某些模式启用空白模式

jch*_*chl 7 emacs dot-emacs

我试图whitespace-mode仅在某些模式下自动启用emacs .根据文档,启用global-whitespace-mode和设置whitespace-global-modes变量应该完全相同.但我不能让它正常工作.

在我的.emacs.el身上:

(require 'whitespace)
(global-whitespace-mode t)
(setq whitespace-global-modes '(c-mode c++-mode))
Run Code Online (Sandbox Code Playgroud)

whitespace-global-modes似乎忽略了定义; global-whitespace-mode在每个缓冲区中启用.我知道我的变量名称正确,因为C-h v whitespace-global-modes告诉我:

whitespace-global-modes's value is (c-mode c++mode)

Documentation:
Modes for which global `whitespace-mode' is automagically turned on.
...
Run Code Online (Sandbox Code Playgroud)

那么我做错了什么?我误解了目的whitespace-global-modes吗?

我正在运行emacs 23.2.1.

Emr*_*inç 5

显然,空白 - 全局模式的含义与你(和我)理解的非常不同.

尝试怎么样

(require 'whitespace)

(add-hook 'c-mode-hook 
  (function (lambda ()
              (whitespace-mode t))))
Run Code Online (Sandbox Code Playgroud)

为c ++模式重复同样的事情?


jch*_*chl 4

事实证明,我的命令.emacs.el 几乎)终于起作用了。让我困惑的是,“WS”出现在所有缓冲区的模型行中,尽管只有 C 和 C++ 缓冲区whitespace-mode按照期望获得了 的效果。

另一个问题是我有一个拼写错误:c++mode而不是c++-mode