如何在 .vimrc 中映射 ALT-return?

如何在 .vimrc 中映射 ALT-return?

我尝试在我的 .vimrc 中映射左 alt 键和回车键的组合,但是没有成功。

我已将所有这些映射添加到我的 .vimrc 文件中,但没有任何效果:

map <M-esc> itest0<return><esc>
map <M-cr> itest1<return><esc>
map <M-return> itest2<return><esc>
map <M-enter> itest3<return><esc>
map <M-[> itest4<return><esc>
map ^[ itest5<return><esc>

一些信息:

按下Ctrl+v然后按下Alt+后return

  • 在我的终端我得到^[
  • 在 vim (和 gvim)的插入模式下我得到^[
  • 打电话后sed -n l我得到:
^[
\033$

我在 Arch Linux 上使用 terminator。无论我使用 vim 还是 gvim,描述的行为都是相同的。我该怎么办?

答案1

由于键盘输入的内部处理方式,遗憾的是,即使在 GVIM 中,这在今天也普遍无法实现。某些组合键(如Ctrl+ 非字母)无法映射,并且无法区分Ctrl+ 字母和Ctrl+ Shift+ 字母。(除非您的终端发送不同的术语表代码,大多数人没有。)在插入或命令行模式下,尝试输入组合键。如果没有任何反应 / 插入,则无法使用该组合键。这也适用于<Tab>/ <C-I><CR>/ <C-M>/ <Esc>/<C-[>等。(唯一的例外是<BS>/ <C-H>。)同样适用于Alt和非字母键。这是一个已知的痛点,也是 vim_dev 和 #vim IRC 频道上各种讨论的主题。

有些人(首先是 Paul LeoNerd Evans)想要修复这个问题(即使对于支持该功能的终端中的控制台 Vim),并提出了各种建议,cp。http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

但截至今天,还没有任何补丁或志愿者提出,尽管许多人表示希望在未来的 Vim 版本中拥有这一点。

相关内容