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

Sag*_*ain 1 vi vim

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

之前

line1
line2
line3
Run Code Online (Sandbox Code Playgroud)

1line1
2line2
3line3
Run Code Online (Sandbox Code Playgroud)

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

1 line1
2 line2
3 line3
Run Code Online (Sandbox Code Playgroud)

我尝试在命令中给出一个spaceline('.'),但不起作用.

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

编辑:此处提供的问题和答案与另一个问题的答案不同.

yol*_*yer 6

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

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


ron*_*chn 5

你可以这样做:

%s/^/\=printf('%d ', line('.'))
Run Code Online (Sandbox Code Playgroud)

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

%s/^/\=printf('%4d ', line('.'))
Run Code Online (Sandbox Code Playgroud)

或放置一个点或冒号:

%s/^/\=printf('%4d. ', line('.'))
Run Code Online (Sandbox Code Playgroud)