Ho una domanda su Emacs Lisp. Qual'è la differenza tra setq e setq-default ?
I tutorial dicono che setq ha effetto nel buffer locale mentre setq-default ha effetto su tutti i buffer.
Ad esempio, se ho scritto (setq a-var a-vars-value) in init.el , ho trovato dopo aver avviato Emacs e aperto un nuovo buffer, anche a-var è lì e il suo valore è a-vars-value . Ho pensato che non doveva essere lì. Sembra che non ci sia differenza tra setq e setq-default .
C'è qualcosa che non va nella mia comprensione?
Per esempio:
Ho scritto (setq ciao 123) nel file init.el , ed eseguo emacs abuffer nella shell, quindi inserisco "ciao Cx Ce" , mostra "123". Lo stesso accade quando lo eseguo in tutti i nuovi buffer.
Ho scritto (setq tab-width 4) nel file init.el. Quando eseguo Cx Ce con la larghezza di tabulazione , viene visualizzato "8" (la modalità corrente è "Testo"). Tuttavia, quando uso (setq-default tab-width 4) , mostra "4". Non riesco a spiegare questo fenomeno.