У мене питання про 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". Я не можу пояснити це явище.