我在寻求仅对偶数行进行替换时发现了以下内容:
:g/^/if !(line('.')%2)|s/foo/bar/g|endif
效果很好。但有人可以解释一下|的必要性:g调用的命令部分中的字符?
答案 0 :(得分:5)
|
字符是命令分隔符;使用它,您可以在一行中连接多个Ex命令,而无需添加换行符。请参阅:help :bar
。
因此,您的条件相当于以下内容:
if !(line('.')%2)
s/foo/bar/g
endif
请注意,某些Ex命令会占用命令行的整个剩余部分,因此无法与|
直接连接。但是你可以将这些命令包装在:execute "{cmd}"
。