使用异国情调的键盘布局,我必须重新映射 g (以及其他),在我的布局中,它位于经典 qwerty 布局的 h 位置。为此,我决定使用以下命令将 g 与 h 交换:
noremap g h
noremap h g
这不起作用。例如,输入 hh 被视为 gh 而不是 gg。此外,当点击 g 它显示 g (启用
showcmd
)而不是 h 并且它似乎没有考虑重新映射,它就像 g 命令一样。但是当再次点击 g 或等待 1 秒时,它实际上向左移动。我尝试了以下方法使其在操作挂起模式下工作
onoremap g h
onoremap h g
但它不会改变任何东西。
那么它为什么会这样呢?以及如何修复它?
最佳答案
像 gg
(或我记得有类似问题的各种 <C-w>
命令)这样的多键命令的问题在于,它们不是后跟 g
运算符的 g
命令。 (特别是对于 g
前缀,在该空间的原始 vi 中找不到一整套不相关的命令。)
恐怕您必须为所有这些定义单独的重新映射:
:nnoremap hh gg
...
关于Vim:在操作挂起模式下交换 2 个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16146526/