2013-04-22 58 views
4

使用異國情調的鍵盤佈局,我必須重新映射g(其他),即在我的佈局中,在經典qwerty佈局的h位置。爲此,我決定使用以下命令將g與h交換:Vim:在操作待定模式下交換2個字符

noremap g h 
noremap h g 

這不起作用。例如,鍵入hh被視爲gh而不是gg。另外,當擊中g時,它顯示g(使用showcmd啓用),而不是h,它似乎沒有考慮到重新映射,它就像g命令一樣。但是當再次擊中或等待1秒時,它實際上向左移動。

我嘗試以下,以使其在運行掛起模式

onoremap g h 
onoremap h g 

工作,但它不會改變任何東西。

那麼爲什麼它的行爲呢?以及如何解決它?

回答

3

與像gg多鍵命令(或從中我記得有一個類似的問題的各種<C-w>命令)麻煩的是,他們不命令g後跟一個g運營商。 (特別是隨着g前綴,有一個整體範圍在空間中的原始VI沒有發現不相關的命令。)

恐怕你必須定義單獨的重新映射爲所有的人:

:nnoremap hh gg 
... 
+0

那真是太遺憾了。雖然它回答了這個問題,但它並沒有解釋我描述的行爲(即使在正常模式下也不起作用的g重映射),這是最煩人的。不管怎麼說,還是要謝謝你。 – bootleg 2013-04-22 13:58:41