在操作挂起模式下

在操作挂起模式下

使用异国情调的键盘布局,我必须重新映射 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/

10-12 20:57