开发者

How to disable global minor mode in individual buffer for emacs

开发者 https://www.devze.com 2023-02-11 21:35 出处:网络
I have enable smart-tab mode as global minor开发者_Go百科 mode by (global-smart-tab-mode 1) and want to disable it in eshell-mode,

I have enable smart-tab mode as global minor开发者_Go百科 mode by

(global-smart-tab-mode 1)

and want to disable it in eshell-mode,

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

but It seems not work and I'm sure this hook have been executed. If I manually run (smart-tab-mode -1) in eshell, It is OK.

I don't know why, could someone help me, thanks in advance!


I suppose the deactivation of the minor mode in eshell-mode-hook and the activation caused by global-smart-tab-mode are called in the wrong order.

Recent versions of smart-tab.el have a smart-tab-disabled-major-modes variable to which you could add eshell-mode, i.e. (add-to-list 'smart-tab-disabled-major-modes 'eshell-mode).


There are different versions of smart-tab.el around - which one do you use? If it's John Anderson's version, you don't need to add a hook, you can simply customize the variable smart-tab-disabled-major-modes by invoking

M-x customize-variable <ENTER> smart-tab-disabled-major-modes <ENTER>

and then adding "eshell-mode" to the list.

If you are using Daniel Hackney's version there is a new function turn-off-smart-tab-mode which you can use instead of (smart-tab-mode -1) in your above code.

0

精彩评论

暂无评论...
验证码 换一张
取 消