如何将菜单键(“应用程序键”)映射到vim中的Escape键?

如何将菜单键(“应用程序键”)映射到vim中的Escape键?,vim,menu,map,escaping,key,Vim,Menu,Map,Escaping,Key,我认为使用菜单键退出vim的插入模式将是一件很棒的事情。使用超级键也很好,但我不确定是否可能,因为超级键是一个修饰符 总之,我找不到任何与此相关的东西。期待您的帮助和提前感谢 我认为没有任何方法可以将Vim配置为关注菜单键, 但是,根据您的系统,有多种方法可以将菜单键转换为退出键 如果您在Linux上使用X11: 命令xmodmap-e'keycode135=Escape'会将菜单键转换为当前会话的Escape键,但不是永久性的。为了使它在Gnome下永久化,您可以尝试将它添加到系统下→ 偏好

我认为使用菜单键退出vim的插入模式将是一件很棒的事情。使用超级键也很好,但我不确定是否可能,因为超级键是一个修饰符


总之,我找不到任何与此相关的东西。期待您的帮助和提前感谢

我认为没有任何方法可以将Vim配置为关注菜单键, 但是,根据您的系统,有多种方法可以将菜单键转换为退出键

如果您在Linux上使用X11:

  • 命令
    xmodmap-e'keycode135=Escape'
    会将菜单键转换为当前会话的Escape键,但不是永久性的。为了使它在Gnome下永久化,您可以尝试将它添加到系统下→ 偏好→ 启动应用程序
  • xkeycaps
    程序将为您提供类似重映射的GUI
有关更多信息:

只需尝试使用ctrl+[而不是绑定另一个键。顺便说一句,这种组合是vim中的标准组合


当回弹capslock进入一个额外的ctrl键时,这就更容易了。

我还没有找到在gVim中映射它的方法,但是我能够通过以下方法成功地映射
urxvt
+
屏幕
+
vim
堆栈中的菜单键:

  • 在终端中,键入Ctrl+v并按Menu。这将映射到Zsh和基于Readline的工具(如Bash)中的
    quoted insert
    函数
  • 它将在提示符下生成一个转义序列,如
    ^[[29~
    。(必须将首字母
    ^[
    转换为
    ,以便在
    .vimrc
    中使用)
  • 打开
    .vimrc
    并添加如下行:
  • \033
    ~/.Xresources
    语法中的

    阅读此url中的42 pdf
    imap <Esc>[29~ <Esc>
    
    ! Unbreak zsh keys in URxvt
    URxvt*keysym.Home: \033[1~
    URxvt*keysym.End: \033[4~