我正在尝试仅在某些模式下自动启用emacs whitespace-mode
。根据文档,启用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。
答案 0 :(得分:5)
显然,空白 - 全局模式的含义与你(和我)理解的非常不同。
如何尝试
(require 'whitespace)
(add-hook 'c-mode-hook
(function (lambda ()
(whitespace-mode t))))
并为c ++模式重复同样的事情?
答案 1 :(得分:3)
事实证明,.emacs.el
中的命令(几乎)完全正常工作。令我感到困惑的是,“WS”出现在所有缓冲区的模式行中,即使只有C和C ++缓冲区可以根据需要获得whitespace-mode
的效果。
另一个问题是我输了一个拼写错误:c++mode
而不是c++-mode
。