在Emacs viper模式下禁用ESC为meta?

Nat*_*ray 5 vim emacs escaping viper viper-mode

我是一个长期的vim用户,试图切换到emacs.

我正在使用viper-modeemacs,我一直在键入ESC(退出插入模式),然后键入一个键(比方说j).我打字很快,经常同时打它们.Emacs然后认为我正在击中META-j并运行一个我不打算的功能.

我喜欢使用选项作为元,并且当我在毒蛇时,不关心ESC曾经是元.

任何人都有关于如何在毒蛇模式下完全禁用ESC为meta的建议?

这是我尝试过的一些相关选项.这些都没有解决问题.

(setq viper-no-multiple-ESC t)                                                                                   
(setq viper-translate-all-ESC-keysequences t)                                                                        
(setq viper-fast-keyseq-timeout 0)
Run Code Online (Sandbox Code Playgroud)

小智 3

我也遇到了同样的情况,这个问题已经阻止我尝试 emacs 很长一段时间了。但我终于有时间进行调查,并认为我已经找到了解决方案/解决方法。

查看 viper 的源代码后,我意识到与我找到的所有文档相反,它viper-translate-all-ESC-keysequences是一个函数。所以设置一个同名的变量不会有任何作用。

所以现在我的 .emacs 文件中已经有我(defun viper-translate-all-ESC-keysequences () nil)的行了。(require 'vimpulse)看来我现在可以随心所欲地向我的 ESC 键发送垃圾邮件了。我不知道为什么文档如此具有误导性,但现在我至少可以尝试使用 emacs 来解决此问题。希望这可以帮助!