EmacsLispについて質問があります。setqとsetq-defaultの違いは何ですか?
チュートリアルによると、setqはローカルバッファで有効になりますが、setq-defaultはすべてのバッファに影響します。
たとえば、init.elに(setq a-var a-vars-value)と書いた場合、Emacsを起動して新しいバッファーを開いた後、a-varもそこにあり、その値はa-vars-valueであることがわかりました。そこにあるはずがないと思った。setqとsetq-defaultの間に違いはないようです。
私の理解に何か問題がありますか?
例えば:
私が書いた(ハローsetqの123)にinit.elファイル、と私は実行abufferのemacsのシェルでは、その後、I入力は"helloてCx Ce" 、それが"123"を示しています。これをすべての新しいバッファーで実行すると、同じことが起こります。
init.elファイルに(setq tab-width 4)を書き込みました。tab-width Cx Ceを実行すると、「8」と表示されます(現在のモードは「テキスト」です)。ただし、(setq-default tab-width 4)を使用すると、「4」と表示されます。この現象を説明することはできません。