在emacs中,我們可以定義可定製的用戶選項變量。如何爲由defcustom定義的變量設置緩衝區局部值?
defcustom - 中的Emacs Lisp http://www.gnu.org/software/emacs/manual/html_node/eintr/defcustom.html
編程和我們可以讓變量有緩衝區本地綁定。
創建緩衝區局部 - GNU的Emacs Lisp參考手冊http://www.gnu.org/software/emacs/manual/html_node/elisp/Creating-Buffer_002dLocal.html#Creating-Buffer_002dLocal
如果我想打不可自定義變量,我可以使用make-local-variable
或setq-local
。
但我找不到任何方法如何讓自定義變量具有緩衝區本地綁定。
即使我叫make-local-variable
由defcustom
定義的變量,custom-set-variables
設置爲全球價值。
如果我打電話setq-local
,則將值設置爲局部變量。這個比較好。但我不認爲這是最佳做法。
是否有任何有效的方法來設置由defcustom定義的變量的緩衝區局部值?
要設置(在代碼中)* any *變量的緩衝區局部變量,可以使用'setq-local'(或Emacs 24.3之前的'make-local-variable')。這*是最佳做法。你的問題實際上是「如何在* defcustom'聲明中指定一個變量應該總是緩衝區本地?」 ?或者也許「我如何使用Customize用戶界面爲變量設置緩衝區本地值?」 ? – phils
@phils對不起,我的語言能力。我想問的是「是否有一個像setq-local'和'custom-set-variables'這樣的函數?」。但@Drew發佈了全面的答案。謝謝。 – kumar8600