3

我正在制作一个快捷方式,将 # 放在每行的前面,在接下来的x行中。x是我在输入快捷方式之前输入的数字,就像输入11dd会删除接下来的 11 行一样。

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

回答问题后添加:

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

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

这使我可以键入,在接下来的 13 行前面13ac添加,并在接下来的 13 行前面删除任何内容。#13dc#

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

4

1 回答 1

3

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

s/^/#/count

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

5s/^/#/3

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

编辑

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

map CC :s/^/#/g

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

于 2010-08-17T12:27:43.850 回答