2012-07-11 22 views

回答

12

你的定義沒有什麼不妥。 Vim會正確映射這個組合,但它不會像你期望的那樣完成它。什麼是映射實際上是說是

Shift + Alt被擊中除了]

在標準鍵盤上的]字符時相結合,將產生}。這意味着Vim將永遠不會看到]結合移位,而是隻看到}。你可以利用這個來獲得你正在尋找的行爲。試試下面的映射,而不是(假設標準QWERTY鍵盤)

:map <A-}> gt 
:map <A-{> gT 
+0

哇,誰還會想到的是!謝謝 – BPm 2012-07-11 22:53:27

+1

這不適用於我...我在Mac上,以防萬一。 – iconoclast 2013-05-07 02:46:39

12

當你想重新映射在vim鍵,它往往是一個好主意,去到插入模式,按Ctrl + V,然後鍵入你想重新映射的密鑰。在這種情況下,我得到一個Escape字符(Ctrl + [),然後是}

我不喜歡使用<A-}>符號,但你可以通過編輯.vimrc文件,進入map文本,然後打按Ctrl + V,打鍵Alt + Shift +]然後加入gt已經解決了這個問題。你最終會像

map ^[} gt 

線(但實際Escape字符,而不是一個^[因爲我在這裏型)和它的工作。

P.S.當我嘗試這個,Alt + Shift + [工作正常,但Alt + Shift +]似乎已經在我的vim副本中使用。我不確定它究竟做了什麼,但重新映射它不適合我。當我鍵入

:map <A-}> 

它打印No mapping found.

+3

感謝您的「ctrl + v」提示! – BPm 2012-07-12 02:38:22

+0

不客氣! :-)回到那一天,我用那個技巧來弄清楚一個啞終端將爲其特殊鍵之一發送什麼樣的轉義序列。 – steveha 2012-07-12 03:29:41

+1

適用於Mac(使用control-v方法)。 – iconoclast 2013-05-07 02:59:34

相關問題