【问题标题】:Vim - ex mode command - is there any way to move the cursor position?Vim - ex 模式命令 - 有没有办法移动光标位置?
【发布时间】:2025-12-22 11:30:16
【问题描述】:

在一行 Vim ex 命令中:

我正在尝试执行一个命令,然后移动到另一个位置并执行相同的命令。

有没有办法移动光标位置(需要左/右和上/下)?

【问题讨论】:

    标签: vim scripting ex-mode


    【解决方案1】:

    '|'是 Vim 脚本中的命令分隔符。

    :command the_first | second command
    

    执行两个命令。

    还有 :normal 命令允许您从 Ex 命令行执行正常模式命令,例如运动命令。所以也许你可以做类似的事情

    :/pat.*$/d | exec "normal 32G5w" | /pat.*$/d
    

    但是,如果您可以更具体一些,可能有更简单的方法来做您想做的事情。

    【讨论】:

    • 正常不允许在其后使用其他命令,因此您必须使用:execute。而且您没有关闭 / 代替。
    • @ZyX 你不需要关闭替代品,除非你要添加标志。
    • @Zenexer 你必须关闭:substitute,因为之后还有更多命令。
    • @glts 很有趣。 vim 是我似乎永远无法征服的一件事。
    【解决方案2】:

    您的问题并不完全清楚,但我认为您的意思是使用录音。我希望你知道 h,j,k,l 移动命令。试试这个:

        <goto command mode>
        qa
        i
        dddd
        <esc>
        j
        q
        @a
    

    qa 是在缓冲区a 中开始记录的命令。 q 用于停止录制。您可以通过@a 使用缓冲区a。也可以尝试10@a 操作 10 次。

    【讨论】: