|
From: | Thibaut Verron |
Subject: | Re: more issues with setq-local |
Date: | Tue, 20 Apr 2021 17:48:11 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 |
So, how do you do set `fill-column' to 62 everywhere in Emacs? `setq' sets it buffer-locally. And `setq-default' sets it where it isn't set! But do I set it where it is set? I am to hunt down these buffers manually?
You could write a loop going over all buffers and doing setq in each of them, if that's really what you want.
But if all you want is to use the default value everywhere, isn't it easier not to set it locally in the first place?
Observe the below [last] Elisp. We see/understand that fill-column isn't of the "buffer instance metadata" use case. It is just normal data.
Which might need to be different in different buffers.The alternative, as you say, is a global variable which users would make local when necessary. I think that the current setting is less destructively dangerous. Imagine for instance someone with a before-save-hook function using fill-column, and accidentally changing the global value...
If one wants that different in different parts of Emacs, why don't you do as `message-mode' and get your own variable?
What do you mean? I strongly suspect that what message-mode does is (setq fill-column message-fill-column) at mode initialization.
The variable message-fill-column is given for convenience, ie, so that you can set the fill column for *Messages* by just setting that variable (instead of using, say, a hook). But internally, a buffer-local version of fill-column is created for the *Messages* buffer.
If that's what you mean by "it is set", that some mode is setting the variable, then yes, I suspect that you have no choice but to investigate how to bypass that setting for each mode which gets an incorrect value (or override it manually with a hook).
[Prev in Thread] | Current Thread | [Next in Thread] |