Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to change variables for specific fundamental-mode buffers

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 no fundamental-mode-hook that I could hook this setting into.
  • There is the after-major-mode-change-hook which is run when the major mode is changed to fundamental-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?

like image 597
Moritz Bunkus Avatar asked Nov 03 '22 14:11

Moritz Bunkus


1 Answers

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 for M-x report-emacs-bug

like image 58
Stefan Avatar answered Nov 15 '22 12:11

Stefan