2015-10-05 51 views

回答

6

|用于一次执行多个命令。

在您的例子:

:vimgrep /pattern/ file | copen 

此发现在指定文件模式,然后打开一个窗口,显示模式发生的当前列表。

第二个命令(和后续命令)仅在先前的命令成功时执行。

+0

第一条命令如何将其数据传输到第二条命令? – bodacydo

+2

它没有,这不是重点 - 它不像unix管道,它只是在一条线上运行多个命令。 'vimgrep'完成它的功能并将结果存储在quickfix列表中。 'copen'只是打开一个窗口来显示quickfix列表。在这个命令中根本没有传输。 –

4

对于OP的问题:后者。

这实际上是一个vi功能,而不是vim -specific,用于分隔多个命令。它以前在这里找到答案:

+0

是'|'Ex命令吗?如果第一个命令是独立命令,它如何将其数据传输到第二个命令? – bodacydo

+0

As [@Dan Lowe](http://stackoverflow.com/users/2449905/dan-lowe)指出,没有传输(“|”可能意味着不同的事情,例如在正则表达式中)。 –