On Wed, 13 Jul 2011 11:25:10 -0400, rvclayton@verizon.net (R. Clayton) wrote: > I am running GNU Emacs 23.3.1 (i486-pc-linux-gnu, GTK+ Version 2.24.3) of > 2011-04-10 on raven, modified by Debian on a debian testing system updated > weekly. > > I have noticed that the initial scratch buffer, the one you get when you just > run emacs with no command-line arguments, is in fundamental mode, even though > .emacs contains, in custom-set-variables, '(initial-major-mode (quote > text-mode)) and help-variable in *scratch* reports initial-major-mode's value > is text-mode. For me, using a ~/.emacs containing only this, works as expected: (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(initial-major-mode (quote text-mode))) So, your problem might be caused by something else in your configuration. > I have also noticed that doing (setq major-mode 'text-mode) in .emacs has no > effect: new buffers are set to fundamental mode rather than text mode. The > help-variable documentation for major-mode indicates that setting help-mode > makes it buffer local, which seems like strange behavior for a variable that's > supposed to provide a global value. [..] major-mode is not supposed to provide a global value. The idea is that every buffer has its own major-mode, otherwise you couldn't have buffers open for both C and lisp files and have them highlighted differently for example. So it makes perfect sense for major-mode to be buffer-local. If you want to set a default for a buffer-local variable, you can use setq-default, like so: (setq-default major-mode 'text-mode) But because some functions that create a new buffers directly set the major-mode of the buffer (e.g. mail clients creating a buffer to display a message), it is doubtful what that line would actually accomplish. > > Although I expect I know the answer to this one, I'll ask it anyway: why is it > that a "top-level" setq on major-mode in .emacs doesn't work? Since major-mode is buffer-local, that only changes the major-mode for the currently selected buffer when that code is executed (depending on your configuration, that might be the Emacs welcome buffer). > Also, top-level setqs on initial-major-mode and major-mode used to work as > expected up until a few weeks ago. What has changed since then? Searching > around in the /usr/share/doc/emacs23 change files doesn't produce anything I > can recognize as an explanation. What exactly do you mean by work as expected? If you mean that (setq major-mode 'text-mode) used to set the major-mode for the scratch-buffer, then this only could have worked if *scratch* was the current buffer when .emacs was run. I think this is an implementation detail that you should not rely on anyway. About initial-major-mode not working: As I said, I can't reproduce that. (I'm also using Emacs 23.3.1, but from debian unstable). Cheers, Daniel