我想写一个次模式,在运行时切换其他几种模式。某种伞式模式。
现在我用最简单的任务堆叠 - 创建模式,启用单一其他模式。
我写了
(require 'whitespace)
(define-minor-mode
myspace-mode
"some doc"
nil
nil
(if myspace-mode
(whitespace-mode 1)
(whitespace-mode -1)
)
)
当我从M-x切换此模式时,没有任何反应。但是当我直接评估(空白模式±1)时,它按预期工作。
我想念什么?
答案 0 :(得分:3)
您的定义中缺少一个参数。因此,您的(if ...)
表单实际上被解释为keymap
参数。
试试这个:
(define-minor-mode
myspace-mode
"some doc"
nil
nil
nil
(if myspace-mode
(whitespace-mode 1)
(whitespace-mode -1)))