如何在 Vim 中插入行号后跟 space?

How to insert line number followed by a space in Vim?

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

之前

line1
line2
line3

之后

1line1
2line2
3line3

但是我想在下面的行号后面插入一个space

1 line1
2 line2
3 line3

我尝试在命令中的 line('.') 之后输入 space,但没有用。

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

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

你可以这样做:

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

这也意味着您可以填充整数以使事情对齐:

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

或放置一个点或冒号:

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

您可以这样更正您的尝试::%s/^/\=line('.').' '/

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