【发布时间】:2010-11-24 20:55:42
【问题描述】:
我认为使用 Menu 键退出 vim 的插入模式会是一件很棒的事情。使用 Super 键也很好,但我不确定是否可能,因为 Super 键是修饰符。
无论如何,我找不到与此相关的任何内容。寻求您的帮助并提前致谢!
【问题讨论】:
-
阅读此网址zmievski.org/talks中的42 pdf
我认为使用 Menu 键退出 vim 的插入模式会是一件很棒的事情。使用 Super 键也很好,但我不确定是否可能,因为 Super 键是修饰符。
无论如何,我找不到与此相关的任何内容。寻求您的帮助并提前致谢!
【问题讨论】:
我不认为有任何方法可以配置 Vim 来关注菜单键, 但是根据您的系统,有多种方法可以将 Menu 键变成 Escape 键。
如果您在 Linux 上使用 X11:
xmodmap -e 'keycode 135 = Escape' 会将您的菜单键变成当前会话的退出键,但不是永久性的。要使其在 Gnome 下永久生效,您可以尝试在 System → Preferences → Startup Applications 下添加它。xkeycaps 程序将为您提供用于类似重新映射的 GUI。更多信息:
http://46dogs.blogspot.com/2008/05/remap-keys-in-ubuntu-804-hardy-heron.html
【讨论】:
我还没有找到在 gVim 中映射它的方法,但是我能够通过以下方法成功地将菜单键映射到 urxvt+screen+vim 堆栈中:
quoted-insert 函数。^[[29~ 的转义序列。 (最初的^[ 必须翻译成<Esc> 才能在.vimrc 中使用。).vimrc 并添加如下一行:imap <Esc>[29~ <Esc>
(或imap <Esc>[29~ <Esc><Esc>,如果您不希望它像 Escape 键那样等待进一步的输入。)
请注意,并非所有键都可以从 Ctrl+v 返回可用的内容。这是终端仿真器的限制,可以通过重新映射密钥来解决。您可以在终端模拟器级别而不是所有 X 应用程序级别上执行此操作。
例如,对于urxvt,我必须将以下行添加到~/.Xresources 并运行xrdb -merge ~/.Xresources 来应用它们:
! Unbreak zsh keys in URxvt
URxvt*keysym.Home: \033[1~
URxvt*keysym.End: \033[4~
(\033 在~/.Xresources 语法中是<Esc>。)
【讨论】:
只需尝试使用 ctrl+[ 而不是绑定另一个键。顺便说一句,这种组合是 vim 中的标准组合。
当将 capslock 反弹到额外的 ctrl 时,这会更容易。
【讨论】: