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.
精彩评论