为一组文件执行命令的便捷方法是收集其名称列表,将其定义为新参数列表(请参阅:help arglist参考资料),然后在参数列表中对这些文件进行迭代.
要执行第一步,请使用:args带有匹配所需文件的通配符的命令.例如,
:args ./**/*
Run Code Online (Sandbox Code Playgroud)
将参数列表设置为当前目录及其子目录中所有文件的名称; 同样,
:args /tmp/**/*.{c,h}
Run Code Online (Sandbox Code Playgroud)
选择所有.c和.h文件/tmp及其子目录.有关通配符语法的详细信息,请参阅:help wildcard.
如果预先知道包含要打印的文件的子树的根的路径并且是由脚本构建的,请使用该命令
:exe 'args' join(map(split(glob(p . '/**/*'), '\n'), 'fnameescape(v:val)'))
Run Code Online (Sandbox Code Playgroud)
其中变量p应包含该根目录的路径名.
要将参数列表中的文件发送到打印机,请:hardcopy使用该:argdo命令对这些文件执行
命令,
:argdo hardcopy!
Run Code Online (Sandbox Code Playgroud)
该!说明符抑制选择打印参数的模态对话框.
可以使用更复杂的命令将每个文件打印到与该文件位于同一目录的单独PostScript文档.
:argdo hardcopy! >%:p.ps
Run Code Online (Sandbox Code Playgroud)
这里打印文件的名称与.ps后缀连接,以获取相应PostScript文件的名称(请参阅参考资料:help
cmdline-special).
为了加速:argdo-argument命令,Vim Syntax通过将自动命令事件添加到eventignore列表中来忽略
它.这意味着如果Syntax在:hardcopy命令为:argdone 之前没有为参数列表中的文件运行自动命令,则相应的打印文档将没有语法突出显示(如果syntax:y设置为printoptions).要Syntax
对参数列表中的所有文件执行自动命令,请首先使用以下命令.
:argdo set ei-=Syntax | do Syntax
Run Code Online (Sandbox Code Playgroud)
要在与打印相同的运行中执行此操作,请连接命令:
:argdo set ei-=Syntax | do Syntax | hardcopy! >%:p.ps
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |