我想使用以下全局命令根据段落的首字母对文本中的段落进行排序:
g/_p/,/^$/mo$这是单独工作的。但是当我同时使用几个全局命令时,就会出现错误:
g/_p/,/^$/mo$|g/_w/,/^$/mo$这会产生以下错误:
Cannot do :global recursive如何一次按顺序运行这些命令?
发布于 2012-03-17 23:28:34
:exe 'g/_p/,/^$/mo$' | g/_w/,/^$/mo$要追加更多global命令,只需继续将它们包装在execute中
:execute 'g/aaa/s//bbb/g ' | execute 'g/ccc/s/ddd//g' | execute 'g/eee/s/fff/ggg/g' | g/^cake/s/$/ is a lie/g错误的原因在:help:bar中
*:bar* *:\bar*
|可用于分隔命令,因此您可以在一行中提供多个命令。如果要在参数中使用|,请在其前面加上\。
这些命令将|作为它们的参数,因此后面不能跟另一个Vim命令:
:global请注意,这是令人困惑的(继承自Vi):对于:g,|包含在命令中,而对于:s,则不包含。
要使用其他命令,请使用:execute命令。
这也解释了为什么下面的链可以正常工作:
%s/htm/html/c | %s/JPEG/jpg/c | %s/GIF/gif/chttps://stackoverflow.com/questions/9750697
复制相似问题