从vim运行外部命令,从缓冲区传递文件列表

时间:2016-07-01 11:41:13

标签: vim

在vim中,我有一个像这样的文件列表:

public/css/pure.min.css
public/css/trip.nodep.css
public/css/animate.min.css
public/css/admin-main.css
public/css/main.css
public/css/load-museo.css
public/css/upload-styles.css
public/css/pe-icon-social/css/pe-icon-social.css
public/css/pe-icon-social/css/helper.css
public/css/pe-icon-social/css/social-style.css
public/css/vex-theme-flat-attack.css
public/css/vex.css

如何将那些作为args传递给外部命令?

我尝试了:!cleancss -o output.min.css %,但这没有用。

编辑:

实际上cleancss需要这种形式:

cat arg1 arg2 arg3... | cleancss -o minified.css

EDIT2:

在玩耍时,我发现这很有效:

:!cat % | xargs cleancss -o minified.css

我不知道是否有更好(更短)的方式。

1 个答案:

答案 0 :(得分:0)

您可以先加入所有行。 将光标停留在所需的第一行,然后按v,然后使用光标移动到所需的结束行,然后按J。 按gv重新选择它们,然后按y进行复制。

现在,转到命令行。   型

         :!cat

然后,按 Ctrl R ,然后按"

它会显示为

         :!cat file1 file2 file3....filen

然后,您可以输入| cleancss并按照您的知识完成命令。

现在,它会起作用。