我已通过
启用智能标签模式作为全局次要模式(global-smart-tab-mode 1)
并希望在eshell模式下禁用它,
(add-hook 'eshell-mode-hook
(lambda ()
(smart-tab-mode -1)))
但它似乎不起作用,我确定这个钩子已被执行。
如果我在eshell中手动运行(smart-tab-mode -1)
,那就没关系。
我不知道为什么,有人可以帮助我,提前谢谢!
答案 0 :(得分:2)
我认为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)
。
答案 1 :(得分:0)
有不同版本的smart-tab.el - 您使用哪一个?如果它是John Anderson's version,则不需要添加钩子,只需通过调用
自定义变量smart-tab-disabled-major-modes
M-x customize-variable <ENTER> smart-tab-disabled-major-modes <ENTER>
然后将“eshell-mode”添加到列表中。
如果您使用的是Daniel Hackney's version,则可以使用新功能turn-off-smart-tab-mode
代替上述代码中的(smart-tab-mode -1)
。