小编use*_*144的帖子

主模式挂钩配置会影响其他缓冲区

首先让我说我是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)
Run Code Online (Sandbox Code Playgroud)

如何保持这些模式挂钩不会影响不同模式下的其他缓冲区?

谢谢!安德鲁

lisp emacs elisp xemacs major-mode

5
推荐指数
1
解决办法
134
查看次数

标签 统计

elisp ×1

emacs ×1

lisp ×1

major-mode ×1

xemacs ×1