Emacs 在调用我的节点后启用其他次要模式

Emacs 在调用我的节点后启用其他次要模式,emacs,elisp,minor-mode,Emacs,Elisp,Minor Mode,我想写一个次要模式,在运行时切换其他几种模式。某种伞形模式 现在,我正在使用最简单的任务创建模式堆栈,该模式启用单个其他模式 我写了 (require 'whitespace) (define-minor-mode myspace-mode "some doc" nil nil (if myspace-mode (whitespace-mode 1) (whitespace-mode -1) ) ) 当我从M-x切换此模式时,什么都没有发生。但是,当我直接

我想写一个次要模式,在运行时切换其他几种模式。某种伞形模式

现在,我正在使用最简单的任务创建模式堆栈,该模式启用单个其他模式

我写了

(require 'whitespace)
(define-minor-mode
  myspace-mode
  "some doc"
  nil
  nil
  (if myspace-mode
    (whitespace-mode 1)
    (whitespace-mode -1)
 )
)
当我从M-x切换此模式时,什么都没有发生。但是,当我直接计算(空白模式±1)时,它会按预期工作


我遗漏了什么?

您的定义中缺少一个参数。因此,您的
(if…
表单实际上被解释为
keymap
参数

试试这个:

(define-minor-mode
  myspace-mode
  "some doc"
  nil
  nil
  nil
  (if myspace-mode
      (whitespace-mode 1)
      (whitespace-mode -1)))

您的定义中缺少一个参数。因此,您的
(if…
表单实际上被解释为
keymap
参数

试试这个:

(define-minor-mode
  myspace-mode
  "some doc"
  nil
  nil
  nil
  (if myspace-mode
      (whitespace-mode 1)
      (whitespace-mode -1)))

您的定义中缺少一个参数。因此,您的
(if…
表单实际上被解释为
keymap
参数

试试这个:

(define-minor-mode
  myspace-mode
  "some doc"
  nil
  nil
  nil
  (if myspace-mode
      (whitespace-mode 1)
      (whitespace-mode -1)))

您的定义中缺少一个参数。因此,您的
(if…
表单实际上被解释为
keymap
参数

试试这个:

(define-minor-mode
  myspace-mode
  "some doc"
  nil
  nil
  nil
  (if myspace-mode
      (whitespace-mode 1)
      (whitespace-mode -1)))