我知道命令:%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)
我尝试在命令中给出一个space后line('.'),但不起作用.
:%s/^/\=line('.') /
您可以像这样更正您的尝试: :%s/^/\=line('.').' '/
问题在于它将您的空间解析为表达式的一部分line('.').但是当你在表达式中时,可以使用.(点)运算符来连接字符串.
你可以这样做:
%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)