У меня вопрос о Emacs Lisp. В чем разница между setq и setq-default ?
В руководствах говорится, что setq действует в локальном буфере, а setq-default влияет на все буферы.
Например, если я написал (setq a-var a-vars-value) в init.el , я обнаружил, что после запуска Emacs и открытия нового буфера, a-var тоже присутствует, и его значение равно a-vars-value . Я думал, этого не должно было быть. Кажется, нет разницы между setq и setq-default .
Что-то не так с моим пониманием?
Например:
Я написал (setq hello 123) в файле init.el и запускаю emacs abuffer в оболочке, затем ввожу «hello Cx Ce» , отображается «123». То же самое происходит, когда я запускаю это во всех новых буферах.
Я написал (setq tab-width 4) в файле init.el. Когда я запускаю Cx Ce шириной табуляции , он показывает «8» (текущий режим - «Текст»). Однако, когда я использую (setq-default tab-width 4) , отображается «4». Я не могу объяснить это явление.