8

我试图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))

但是 的定义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.
...

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

我正在运行 emacs 23.2.1。

4

2 回答 2

5

显然 whitespace-global-modes 的含义与您(和我)所理解的非常不同。

试试怎么样

(require 'whitespace)

(add-hook 'c-mode-hook 
  (function (lambda ()
              (whitespace-mode t))))

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

于 2011-11-07T14:17:42.457 回答
4

事实证明,我的命令.emacs.el 毕竟(几乎)有效。让我感到困惑的是,“WS”出现在所有缓冲区的模式行中,即使只有 C 和 C++ 缓冲区获得了whitespace-mode所需的效果。

另一个问题是我有一个错字:c++mode而不是c++-mode.

于 2011-11-07T14:17:15.237 回答