首先声明,我对 emacs 很陌生。
我正在尝试为主要模式创建自定义设置。虽然我的设置功能正常,但我发现当我打开新的缓冲区时,该缓冲区的主要模式自定义会应用于其他不同类型的缓冲区。
例如,如果我打开名为“Makefile”的文件,makefile-mode 会被使用,我的自定义设置也会被应用。但是,如果我随后打开另一个名为“test.c”的文件,则 c-mode 会被使用,但是 makefile-mode 的自定义设置将与 c-mode 的自定义设置合并。
下面是我 .emacs 文件中相关部分的内容:
(defun c-mode-settings ()
(c-set-style "bsd")
(set-buffer-file-coding-system 'utf-8-unix)
(show-paren-mode 1)
(setq c-basic-offset 4)
(setq tab-width 4)
(setq indent-tabs-mode nil)
(setq c-tab-always-indent t)
(setq require-final-newline t)
)
(defun makefile-mode-settings ()
(setq whitespace-style '(tabs spaces space-mark tab-mark face lines-tail))
(whitespace-mode t)
(show-paren-mode 1)
(setq tab-width 4)
(setq require-final-newline t)
)
(add-hook 'c-mode-hook 'c-mode-settings)
(add-hook 'makefile-mode-hook 'makefile-mode-settings)
我该如何避免这些模式钩子影响到不同模式的其他缓冲区?
谢谢! Andrew