【问题标题】:How to disable global minor mode in individual buffer for emacs如何在 emacs 的单个缓冲区中禁用全局次要模式
【发布时间】:2011-06-30 08:55:51
【问题描述】:

我已将智能标签模式启用为全局次要模式

(global-smart-tab-mode 1)

并想在 eshell 模式下禁用它,

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

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

我不知道为什么,谁能帮助我,提前谢谢!

【问题讨论】:

标签: emacs elisp


【解决方案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)

【讨论】:

    【解决方案2】:

    smart-tab.el 有不同的版本——你用的是哪一个?如果是John Anderson's version,则不需要添加hook,直接调用自定义变量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)

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多