Mam pytanie dotyczące Emacsa Lispa. Jaka jest różnica między setq i setq-default ?
Samouczki mówią, że setq działa w buforze lokalnym, podczas gdy setq-default wpływa na wszystkie bufory.
Na przykład, jeśli napisałem (setq a-var a-vars-value) w init.el , znalazłem po uruchomieniu Emacsa i otwarciu nowego bufora, a-var też tam jest i jego wartość to a-vars-value . Myślałem, że to nie powinno tam być. Wygląda na to, że nie ma różnicy między setq i setq-default .
Czy jest coś nie tak z moim zrozumieniem?
Na przykład:
Napisałem (setq hello 123) w pliku init.el i uruchamiam emacs abuffer w powłoce, potem wpisuję "hello Cx Ce" , pokazuje "123". To samo dzieje się, gdy uruchamiam to we wszystkich nowych buforach.
Napisałem (setq tab-width 4) w pliku init.el. Kiedy uruchamiam Cx Ce o szerokości tabulacji , pokazuje "8" (aktualny tryb to 'Tekst'). Jednak kiedy używam (setq-default tab-width 4) , pokazuje "4". Nie potrafię wyjaśnić tego zjawiska.