如何在 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('.')
的一部分。但是当您在表达式中时,您可以使用 .
(点)运算符来连接字符串。
我知道命令 :%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('.')
的一部分。但是当您在表达式中时,您可以使用 .
(点)运算符来连接字符串。