如何在 Emacs 中切换 on/off 特定模式?
How to toggle on/off particular mode in Emacs?
说,我想绑定一个键来开启某种模式on/off。我想,我需要的功能应该类似于
(defun toggle-some-mode ()
(if (some-mode-is-active)
(some-mode 0)
(some-mode 1)))
(global-set-key (kbd "some key") 'toggle-some-mode)
问题是这个 some-mode-is-active 是什么样子的?我怎么知道模式是active/inactive?我不相信这样一个有用的案例没有标准功能。
有什么想法吗?
只需使用some-mode
来切换,即(global-set-key (kbd "some key") 'some-mode)
。 some-mode 的参数应该是可选的,如果函数调用中不存在参数,则函数默认切换模式。
关于如何检测模式是否激活的问题:如果 some-mode
由 define-minor-mode
定义,它作为函数和变量存在。如果模式处于活动状态,变量 some-mode
的计算结果为 t
,否则为 nil
。
说,我想绑定一个键来开启某种模式on/off。我想,我需要的功能应该类似于
(defun toggle-some-mode ()
(if (some-mode-is-active)
(some-mode 0)
(some-mode 1)))
(global-set-key (kbd "some key") 'toggle-some-mode)
问题是这个 some-mode-is-active 是什么样子的?我怎么知道模式是active/inactive?我不相信这样一个有用的案例没有标准功能。
有什么想法吗?
只需使用some-mode
来切换,即(global-set-key (kbd "some key") 'some-mode)
。 some-mode 的参数应该是可选的,如果函数调用中不存在参数,则函数默认切换模式。
关于如何检测模式是否激活的问题:如果 some-mode
由 define-minor-mode
定义,它作为函数和变量存在。如果模式处于活动状态,变量 some-mode
的计算结果为 t
,否则为 nil
。