I'm trying to get emacs whitespace-mode
enabled automatically only in certain modes. According to the documentation, enabling global-whitespace-mode
and setting the whitespace-global-modes
variable should do exactly that. But I can't get it to work correctly.
In my .emacs.el
I have:
(require 'whitespace)
(global-whitespace-mode t)
(setq whitespace-global-modes '(c-mode c++-mode))
but the definition of whitespace-global-modes
seems to be ignored; global-whitespace-mode
is enabled in every buffer. I know that I've got the variable name correctly, because C-h v whitespace-global-modes
tells me:
whitespace-global-modes's value is (c-mode c++mode)
Documentation:
Modes for which global `whitespace-mode' is automagically turned on.
...
So what am I doing wrong? Have I misunderstood the purpose of whitespace-global-modes
?
I'm running emacs 23.2.1.
It turns out that the commands in my .emacs.el
were (almost) working after all. What confused me was that "WS" appears in the modeline of all buffers, even though only C and C++ buffers were getting the effect of whitespace-mode
, as desired.
The other problem was that I had a typo: c++mode
rather than c++-mode
.