如何在Emacs中打开/关闭特定模式?

时间:2015-04-03 11:00:57

标签: emacs elisp

说,我想绑定一个键来打开/关闭某些模式。我想,我需要的功能应该类似于

(defun toggle-some-mode ()
  (if (some-mode-is-active)
    (some-mode 0)
  (some-mode 1)))

(global-set-key (kbd "some key") 'toggle-some-mode)

问题是这种模式有效是什么样的?我怎么知道模式是活动/非活动的?我不相信这种有用的案例没有标准功能。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

只需使用some-mode即可切换,即(global-set-key (kbd "some key") 'some-mode)。 some-mode的参数应该是可选的,如果函数调用中没有参数,则函数默认切换模式。

关于如何检测模式是否处于活动状态的问题:如果some-modedefine-minor-mode定义,则它作为函数和变量存在。如果模式处于活动状态,变量some-mode将评估为t,否则为nil