如何在emacs的单个缓冲区中禁用全局次要模式

我已启用智能选项卡模式作为全局次要模式

(global-smart-tab-mode 1)

并希望在eshell模式下禁用它,

(add-hook 'eshell-mode-hook
          (lambda ()
            (smart-tab-mode -1)))

但它似乎不起作用,我确信这个钩子已被执行.
如果我在eshell中手动运行(smart-tab-mode -1),那就没关系.

我不知道为什么,有人可以帮助我,提前谢谢!

最佳答案 我想在eshell-mode-hook中取消激活次要模式以及由global-smart-tab-mode引起的激活以错误的顺序调用.

smart-tab.el的最新版本有一个smart-tab-disabled-major-modes变量,你可以添加eshell-mode,即(add-to-list’smart-tab-disabled-major-modes’eshell-mode ).

点赞