【问题标题】:Vim ex knowing number typed beforeVim ex 知道之前输入的数字
【发布时间】:2010-08-17 12:06:03
【问题描述】:

我正在创建一个快捷方式,将 # 放在每行的前面,在接下来的 x 行中。 x 是我在输入快捷方式之前输入的数字,例如输入 11dd 会删除接下来的 11 行。

命令是.,+10 s/^/#/g。这里的数字 10 应该是在快捷方式之前输入的任何内容。如何根据之前输入的数字更改快捷方式?

在回答问题后添加:

所以现在我在 .vimrc 中有以下内容:

nmap c1 :s/^/#/g<esc>``
nmap c0 :s/^#//g<esc>``

这允许我输入13ac,在接下来的 13 行前面添加 #13dc 在接下来的 13 行前面删除任何 #

它比=pod=cut 更好,因为它们在嵌套时会导致错误。
c1=评论添加,
c0=评论删除。
# 在 Perl 中使用。

【问题讨论】:

    标签: perl vim shortcut ex


    【解决方案1】:

    ex模式下,可以使用如下命令:

    s/^/#/count
    

    其中count 是您要更改的行数。您不能将数字放在命令之前,因为它用于选择起始行(如果省略,则为当前行)。因此:

    5s/^/#/3
    

    将在第 5、6 和 7 行之前添加一个“#”。

    编辑

    ex 模式下,您可以使用map 命令创建冒号命令的快捷方式,然后您可以将其与前缀编号一起使用:

    map CC :s/^/#/g
    

    现在您可以在vi 模式下使用“xCC”将“#”添加到下一个x 行。

    【讨论】:

    • 但我的意思是,当输入数字时,是否存在某种 ex/vimscript 变量或填充的东西?不知何故,当一个人按下 11dd 时,vim 知道在 dd 之前输入了什么。
    • @Hermann Ingjaldsson 有一个 v:count 变量,但它适用于更复杂的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多