在.emacs中我将变量定义为:
(setq-default prevent-highlight-symbol-mode nil)
Run Code Online (Sandbox Code Playgroud)
我用它来禁用红色标签:
(add-hook 'font-lock-mode-hook
(lambda()
(if (and (null (memql major-mode highlight-chars-disable))
(not prevent-highlight-symbol-mode))
(hc-highlight-tabs))))
Run Code Online (Sandbox Code Playgroud)
并在项目特定的宏中使用它
(project-specifics "projects/some-project"
(setq prevent-highlight-symbol-mode t)
(setq indent-tabs-mode t))
Run Code Online (Sandbox Code Playgroud)
但是当我在某个项目目录中打开一个文件并且我prevent-highlight-symbol-mode在任何缓冲区中检查时我都t没有nil,它是全局设置的.如何在缓冲区中将该变量设置为本地?
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).
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |