我知道命令:%s/^/\=line('.')/
会在每行的开头插入行号,如下所示。
在
line1
line2
line3
在
1line1
2line2
3line3
但我想在行号后插入空格,如下所示。
1 line1
2 line2
3 line3
我尝试在命令line('.')
之后给出一个空格,但是没有用。
:%s/^/\=line('.') /
答案 0 :(得分:6)
您可以按照以下方式更正您的尝试::%s/^/\=line('.').' '/
问题在于它将您的空间解析为表达式line('.')
的一部分。但是当你在表达式中时,可以使用.
(点)运算符来连接字符串。
答案 1 :(得分:4)
你可以这样做:
%s/^/\=printf('%d ', line('.'))
这也意味着您可以填充整数以便排列内容:
%s/^/\=printf('%4d ', line('.'))
或点或点冒号:
%s/^/\=printf('%4d. ', line('.'))