2012-05-25 51 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主要版本中擁有此版本。