Как отключить глобальный минорный режим в отдельном буфере для emacs - PullRequest
4 голосов
/ 19 февраля 2011

Я включил режим Smart-Tab как глобальный второстепенный режим с помощью

(global-smart-tab-mode 1)

и хочу отключить его в режиме eshell,

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

, но, похоже, не работает, и яЯ уверен, что этот крюк был выполнен.Если я вручную запускаю (smart-tab-mode -1) в eshell, это нормально.

Не знаю почему, кто-то может мне помочь, заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Я полагаю, что деактивация второстепенного режима в 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).

0 голосов
/ 19 февраля 2011

Существуют разные версии smart-tab.el - какую вы используете? Если это версия Джона Андерсона , вам не нужно добавлять ловушку, вы можете просто настроить переменную smart-tab-disabled-major-modes, вызвав

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

и затем добавление "eshell-mode" в список.

Если вы используете Даниэль Хэкни, версия , есть новая функция turn-off-smart-tab-mode, которую вы можете использовать вместо (smart-tab-mode -1) в приведенном выше коде.

...