4

我需要使用 Vim 在每行文本之前插入行号,并且行号后面必须有一个空格。例如,如果这是 TestFile:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Morbi nunc enim, vehicula eget, ultricies vel, nonummy in, turpis.

它应该看起来像这样

1 Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
2 Morbi nunc enim, vehicula eget, ultricies vel, nonummy in, turpis.

我一直在使用:%s/^/\line('.')/具有多种变体的命令,但我无法弄清楚如何在最后获得空间。

有任何想法吗?

4

3 回答 3

8

你很亲近!

此替换将通过将字符串连接' '到行号来完成这项工作:

%s!^!\=line('.').' '!
于 2013-01-19T02:37:20.560 回答
1

这可能是使用外部工具最简单的方法:

:%!nl -ba -w1 -s' '
于 2013-01-21T00:24:20.297 回答
0

您可以使用宏。首先确保在第一行之前有一个 0 并将光标放在上面:

0 Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Morbi nunc enim, vehicula eget, ultricies vel, nonummy in, turpis.
foo
bar
etc...

然后执行此键序列以将正确的宏存储在寄存器 a:qaywjP0<C-A>q中。现在按@a执行宏。使用量词多次执行它。

键入:help q以了解有关录制宏的更多信息。

于 2013-01-19T16:49:40.467 回答