VIM:插入一个行号,后面加一个空格

时间:2013-01-19 02:32:44

标签: vim

我需要使用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('.')/命令,但我无法弄清楚如何在最后获得空间。

有什么想法吗?

3 个答案:

答案 0 :(得分:8)

你非常接近!

此替换将通过concatenating字符串' '到行号来完成工作:

%s!^!\=line('.').' '!

答案 1 :(得分:1)

使用外部工具可能最简单:

:%!nl -ba -w1 -s' '

答案 2 :(得分: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以了解有关录制宏的更多信息。