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.
Apparently the meaning of whitespace-global-modes is very different from what you (and I) understand.
How about trying
and repeating the same thing for c++-mode?
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 ofwhitespace-mode
, as desired.The other problem was that I had a typo:
c++mode
rather thanc++-mode
.