我使用以下Vim命令行将行号插入行的开头:
:let i = 1 | %s/^/\='LINE_' . Inc()/g
Inc()
是一个增加i
变量的函数。
这一切都很好。我的问题:
1)点在替换部分中做了什么?:
:let i = 1 | %s/^/\='LINE_' . Inc()/g
^
2)管道角色做什么?是否有实际的管道,或者只是语法?
3)\=
做了什么?我认为它用于调用函数,但Vim只显示\=
的信息作为正则表达式中的量词。
4)我无法在行号和实际行的第一个字符后插入空格。我怎样才能做到这一点?我在替换部件Inc()
之后放置的任何内容都会被忽略或导致 E15无效表达式错误。
我在Windows 7上使用Vim 7.3。
答案 0 :(得分:1)
一些解释:
.
表达式将连接两个字符串。请参阅:h expr-.
|
将与ex-commands分开。请参阅:h :bar
\=
命令中的:s
开头的替换意味着替换的其余部分将被视为vim表达式。请参阅:h :s\=
Inc()
函数调用之后将字符串与空格连接。 :let i = 1 | %s/^/\='LINE_' . Inc() . ' '/g