如何在Vim中插入行号后跟一个空格?

时间:2015-10-07 12:31:55

标签: vim vi

我知道命令:%s/^/\=line('.')/会在每行的开头插入行号,如下所示。

line1
line2
line3

1line1
2line2
3line3

但我想在行号后插入空格,如下所示。

1 line1
2 line2
3 line3

我尝试在命令line('.')之后给出一个空格,但是没有用。

:%s/^/\=line('.') /

编辑:此处提供的问题和答案与another question的答案和答案不同。

2 个答案:

答案 0 :(得分:6)

您可以按照以下方式更正您的尝试::%s/^/\=line('.').' '/

问题在于它将您的空间解析为表达式line('.')的一部分。但是当你在表达式中时,可以使用.(点)运算符来连接字符串。

答案 1 :(得分:4)

你可以这样做:

%s/^/\=printf('%d ', line('.'))

这也意味着您可以填充整数以便排列内容:

%s/^/\=printf('%4d ', line('.'))

或点或点冒号:

%s/^/\=printf('%4d. ', line('.'))