【问题标题】:Vim: swapping 2 characters in operation-pending modeVim:在操作挂起模式下交换 2 个字符
【发布时间】:2013-04-15 07:41:30
【问题描述】:

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

但它不会改变任何东西。

那么为什么它会这样呢?以及如何解决?

【问题讨论】:

    标签: vim key-bindings remap


    【解决方案1】:

    gg(或我记得类似问题的各种<C-w> 命令)这样的多键命令的问题在于它们不是g 命令后跟一个g 运营商。 (特别是带有g 前缀的,在该空间的原始vi 中找不到一整套不相关的命令。)

    恐怕您必须为所有这些定义单独的重新映射:

    :nnoremap hh gg
    ...
    

    【讨论】:

    • 那太可惜了。尽管它有点回答了这个问题,但它并没有解释我描述的最烦人的行为(即使在正常模式下也不起作用的 g 重映射)。还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 2016-06-29
    • 2017-12-17
    • 2011-11-10
    • 2014-09-14
    相关资源
    最近更新 更多