在.emacs中我将变量定义为:
(setq-default prevent-highlight-symbol-mode nil)
我用它来禁用红色标签:
(add-hook 'font-lock-mode-hook
(lambda()
(if (and (null (memql major-mode highlight-chars-disable))
(not prevent-highlight-symbol-mode))
(hc-highlight-tabs))))
中使用它
(project-specifics "projects/some-project"
(setq prevent-highlight-symbol-mode t)
(setq indent-tabs-mode t))
但是当我在某个项目目录中打开一个文件并且我在任何缓冲区中检查prevent-highlight-symbol-mode
时我已经t
而不是nil
,它已设置globaly。如何在缓冲区中将该变量设为本地?
答案 0 :(得分:5)
make-local-variable
使变量在当前缓冲区中具有本地绑定。
make-variable-buffer-local
使变量在所有缓冲区中都具有本地绑定(即使是未来的缓冲区)。
如果您在当前缓冲区中完成(make-local-variable 'A-VAR)
,则(setq A-VAR A-VALUE)
设置本地值。您也可以只使用(set (make-local-variable 'A-VAR) A-VALUE)
。