2012-05-25 50 views
2

假设我想将命令:!python % <ENTER>映射到按键Alt Grj在一起?如何在vim中映射Alt Gr组合键?

+0

可能的重复[如何在vim中映射组合键(同时按下按钮,而不是按顺序)?](http://stackoverflow.com/questions/10751270/how-do-i-map-key-combinations-按下按钮,同时不按顺序) –

+0

什么是您的终端类型(TERM变量)?在XTERM中可以使用功能键和Shift/Ctrl/Alt的全部8种组合完成一些操作。 – Jens

回答

3

AltGr由您的键盘驱动程序解释,所以Vim不知道它在修改键方面。但是,有two ways获取AltGr-j的关键代码。在插入模式:

  1. 按下Ctrl-v和然后的AltGr-J(示出了文字字符代码)
  2. 按下Ctrl-V,按键AltGr-j中,然后释放CTRL-V(示出了终端代码)

结果取决于您的键盘布局。如果你只是得到j那么你的运气不好。

+0

我已将Ctrl-v映射为粘贴。 Ctrl-v默认映射到的命令是什么? –

+0

回答我自己的问题在评论中:我可以使用Ctrl-Q从插入模式访问Ctrl-v默认在项目1中所做的任何事情。从Stefan的答案(文字字符代码)。我可以没有显示终端代码的工作(但我相信它可以正常工作,如果你没有重新映射Ctrl-V) –

4

由于键盘输入在内部处理的方式,即使在GVIM中也不能使用许多组合键。这是一个已知的痛点,并且是关于vim_dev和#vim IRC频道的各种讨论的主题。

基本规则是:如果组合键在命令行模式下产生可见字符,则可以将其映射。但特别是对于AltGr,它可能与Alt相同,这取决于您的操作系统与其他键结合时返回的内容。

有些人(最重要的是Paul LeoNerd Evans)想要解决这个问题(甚至在支持这种终端的终端上使用Vim),并且提出了各种各样的建议。 http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

但截至今日,还没有补丁或志愿者尚未出面,尽管许多人表示希望在未来的Vim 8主要版本中拥有此版本。