emacs – 所有模式下的Viper模式

我正在从vi移动到emacs,使用viper和vimpulse,当我向一个窗口Cw Cw并且由于另一个缓冲区(可能是一个帮助缓冲区)无法返回到原始窗口时,它会变得非常烦人未处于Viper模式.我怎样才能解决这个问题?

我尝试在viper配置中添加其他模式,并在默认情况下使用挂钩启动viper模式:

(add-to-list viper-vi-state-mode-list 'help-mode)
(add-hook 'help-mode (lambda () (setq viper-mode t)))

但这些命令都没有奏效.实际上,第一个产生了以下错误:

Warning (initialization): An error occurred while loading `/home/konrad/.emacs.d/init.el':

Wrong type argument: symbolp, (fundamental-mode ...

除了C-W C-w之外,我也错过了无法使用hjkl进行导航.有没有办法重用viper设置的键绑定,而不是为每种模式重新绑定它们?

最佳答案
错误是因为你忽略了引用变量viper-vi-state-mode-list,如下所示:

(add-to-list 'viper-vi-state-mode-list 'help-mode)

请参阅this question,了解为什么需要引用’viper-vi-state-mode-list.

但是,这并没有解决我的问题,这就是我让C-W C-w以你想要的方式工作的方式:

(define-key help-mode-map (kbd "C-w C-w") 'vimpulse-cycle-windows)

转载注明原文:emacs – 所有模式下的Viper模式 - 代码日志