【问题标题】:Vimscript jump `` when relative position changesVimscript 跳转``当相对位置改变时
【发布时间】:2014-09-23 15:31:18
【问题描述】:

我的.vimrc 中有以下别名:

inoremap ^Z ^[[s1z=``a

这允许我在插入模式下按^Z (C-z) 以跳回最后一个拼写错误的单词并将其更正为第一个建议,然后跳回光标之前的位置并重新进入插入模式。

但是,当单词的长度因更正而发生变化时,这不起作用。比如用[]代表光标,在

的上下文中按C-z
A grea idea[]

会导致

A great ide[a]

但我希望它导致

A great idea[]

我怎样才能得到这种相对跳跃?

【问题讨论】:

    标签: vim


    【解决方案1】:

    在 StackOverflow 上找到了一个旧链接,不知道它是否有同样的问题,否则,我会接受它:How to correct vim spelling mistakes quicker?

    <Esc>[s1z=`]a
    

    [s 移动到最后一个拼写错误 1z= 选择第一个建议 `] 移动到最后一个插入点 附加文本

    它还有两个更广泛的解决方案也可以工作。

    【讨论】:

      【解决方案2】:

      不幸的是,标记不适用于其行中的文本更改,仅适用于上面添加/删除的行。但是您可以通过使用gi 命令在最后编辑的位置重新进入插入模式来避免这个问题。

      inoremap <C-z> <Esc>[s1z=gi
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-10
        • 2015-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-02
        相关资源
        最近更新 更多