在vim命令模式下,管道字符会做什么?管道字符在vim命令模式下做什么? (例如,:vimgrep/pattern/file | another_cmd)
例如,:vimgrep /pattern/ file | copen
它是否像在Linux命令行的管道? vimgrep
的内容被传送到copen
?
还是它在命令行中分开命令如;
?
在vim命令模式下,管道字符会做什么?管道字符在vim命令模式下做什么? (例如,:vimgrep/pattern/file | another_cmd)
例如,:vimgrep /pattern/ file | copen
它是否像在Linux命令行的管道? vimgrep
的内容被传送到copen
?
还是它在命令行中分开命令如;
?
|用于一次执行多个命令。
在您的例子:
:vimgrep /pattern/ file | copen
此发现在指定文件的模式,然后打开一个窗口,显示模式发生的当前列表。
第二个命令(和后续命令)仅在先前的命令成功时执行。
第一条命令如何将其数据传输到第二条命令? – bodacydo
它没有,这不是重点 - 它不像unix管道,它只是在一条线上运行多个命令。 'vimgrep'完成它的功能并将结果存储在quickfix列表中。 'copen'只是打开一个窗口来显示quickfix列表。在这个命令中根本没有传输。 –
对于OP的问题:后者。
这实际上是一个vi功能,而不是vim -specific,用于分隔多个命令。它以前在这里找到答案:
<Bar>
mean?是'|'Ex命令吗?如果第一个命令是独立命令,它如何将其数据传输到第二个命令? – bodacydo
As [@Dan Lowe](http://stackoverflow.com/users/2449905/dan-lowe)指出,没有传输(“|”可能意味着不同的事情,例如在正则表达式中)。 –
[':h:bar'](http://vimhelp.appspot.com/cmdline.txt.html#:bar) – ryuichiro