vim中的常见行为是插入模式下的C-o
,允许用户使用一个普通模式命令,然后返回插入模式。
按照此comment中的建议,我已设置
(vimpulse-imap "\C-o" 'viper-escape-to-vi)
但是当我在插入模式下按C-o
时,字符“^ O”被插入到缓冲区中,我无法像我期望的那样切换到一个命令的正常模式。我理解viper-escape-to-vi
默认绑定到C-z
,但我也无法使用此组合键切换到正常模式(“^ Z”将打印在缓冲区中)。我做错了什么?
另外,第二个问题:我希望C-z
不受viper-mode(或vimpulse)的约束,因为我将它用于elscreen。如何告诉它单独离开C-z
?
编辑:在vimpulse-misc-keybindings.el中找到这段代码:
;; temporarily escape to vi state
(define-key viper-insert-basic-map "\C-o" 'viper-escape-to-vi)
那么应该定义吗?不知道为什么它不起作用。
答案 0 :(得分:1)
广告1)它对我有用,也许你的配置出了问题?
但输出很奇怪:得到它的唯一方法是引用插入(或类似)。
插入状态中的 viper-escape-to-vi
绑定到viper-toggle-key
(但默认为C-z),请参阅下文。你的输出再次很奇怪。
广告2)您必须在 viper加载之前将viper-toggle-key
设置为sexp ,或者自定义它。
对于前者(使用Pause键)
(setq viper-toggle-key [pause])
(require 'viper)
你应该尝试evil,成为vimpulse的继承者。它很顺利,摆脱了毒蛇。
在那里设置切换键(再次暂停)距离(evil-set-toggle-key "<pause>")
,它是kbd序列而不是sexp。
C-o也很好。