Vim:在操作待定模式下交换2个字符
问题描述:
使用异国情调的键盘布局,我必须重新映射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
工作,但它不会改变任何东西。
那么为什么它的行为呢?以及如何解决它?
答
与像gg
多键命令(或从中我记得有一个类似的问题的各种<C-w>
命令)麻烦的是,他们不的命令g
后跟一个g
运营商。 (特别是随着g
前缀,有一个整体范围在空间中的原始VI没有发现不相关的命令。)
恐怕你必须定义单独的重新映射为所有的人:
:nnoremap hh gg
...
那真是太遗憾了。虽然它回答了这个问题,但它并没有解释我描述的行为(即使在正常模式下也不起作用的g重映射),这是最烦人的。不管怎么说,还是要谢谢你。 – bootleg 2013-04-22 13:58:41