Goal: I want to have show-trailing-whitespace enabled for all buffers save a few. Exceptions posing a problem are *Shell Command Output* and its cousin *Async Shell Command*.
I usually have show-trailing-whitespace customized to t. Therefore it is active in all new buffers.
I would also like to have it turned off for certain buffers, foremost amongst them *Shell Command Output*. This poses a problem for me:
- The output buffer doesn't use a special mode; it is still in
fundamental-mode. There is nofundamental-mode-hookthat I could hook this setting into. - There is the
after-major-mode-change-hookwhich is run when the major mode is changed tofundamental-mode, but the buffer starts out in that mode and therefore this hook is not run. - There doesn't seem to be a way to hook into
get-buffer-create.
I know I can always advise the function get-buffer-create for this particular example, but I try to avoid that as much as possible.
Any hints?
You might be better off looking at the problem from the other side, and only set the var in those modes where you want to see trailing whitespace.
But I think you have a good point: these shell output buffers should not use
fundamental-mode. It's probably time forM-x report-emacs-bug