我想写一个函数, 先取消注释选中内容, 执行某动作, 再恢复注释, 我需要知道哪个函数对应 toggle comments. 我用的 spacemacs, 我早就发现 gcc
这个快捷键就是用于 toggle comments 的, 于是我 describe-key gcc, 得到的结果是:
g c runs the command evilnc-comment-operator (found in evil-normal-state-map),
which is an autoloaded interactive Lisp closure in
‘evil-nerd-commenter-operator.el’.
It is bound to SPC ;, g c, M-m ;.
奇怪的地方在这里, 明明这里给出的是 g c 绑定到 evilnc-comment-operator
, 但我按键其实 gc 没有完成动作, 必须是 gcc 才可以, 我按 gc 效果会是这样:
我的问题是: 为什么 describe-key 给出的是 gc 而不是 gcc 呢? 明明 gc 完成不了动作, gcc 才会完成动作.
gc 对应的函数 evilnc-comment-operator
, 前几行是:
(evil-define-operator evilnc-comment-operator (start end type)
"Comments text from START to END with TYPE."
(interactive "<R>")
我怀疑这个现象与 <R>
有关, 但在 interactive 的 help 中我没有看到 <R>
的说明, 连 R
的说明也没看到, 只看到 r
的.
我发现这个情况在 evil 很常见, 再比如 dd, describe-key dd 看到的也是:
It is bound to d.
(evil-org-delete BEG END &optional TYPE REGISTER YANK-HANDLER)
evil-org-delete 的定义也是:
(interactive "<R><x><y>")