从Vim递归打印所有文件

前端之家收集整理的这篇文章主要介绍了从Vim递归打印所有文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在使用MacVim,我想打印出工作树中的所有文件.有没有办法简单地这样做,也许使用硬拷贝命令?
为一组文件执行命令的便捷方法是收集
他们的名字列表,将其定义为新的参数列表(参见:help arglist),
然后在参数列表中的那些文件上迭代命令.

>要执行第一步,请使用带有通配符的:args命令
匹配所需的文件.例如,

:args ./**/*

将参数列表设置为当前所有文件名称
目录及其子目录;同样,

:args /tmp/**/*.{c,h}

选择/ tmp及其子目录中的所有.c和.h文件.对于
有关通配符语法的详细信息,请参阅:help wildcard.

如果包含要打印的文件的子树根的路径未知
事先并由脚本构建,使用命令

:exe 'args' join(map(split(glob(p . '/**/*'),'\n'),'fnameescape(v:val)'))

其中变量p应包含其路径名
根目录.
>要将参数列表中的文件发送到打印机,请执行
:使用:argdo命令对这些文件执行hardcopy命令,

:argdo hardcopy!

的!说明符禁止选择打印的模态对话框
参数.

可以使用更复杂的命令将每个文件打印到
一个单独的PostScript文档,位于与该目录相同的目录中
文件.

:argdo hardcopy! >%:p.ps

这里打印文件名称与.ps后缀连接在一起
获取相应PostScript文件名称(请参阅:help
CMDLINE特).

为了加速:argdo-argument命令,Vim忽略了
通过将其添加到eventignore列表来语法autocommand event.
这意味着如果没有为文件运行语法自动命令
在:hardcopy命令之前的参数列表中:argdone,the
相应的打印文档没有语法高亮
(在语法的情况下:在printoptions中设置y).执行语法
参数列表中所有文件自动命令,请使用以下命令
先命令.

:argdo set ei-=Syntax | do Syntax

要在与打印相同的运行中执行此操作,请连接命令:

:argdo set ei-=Syntax | do Syntax | hardcopy! >%:p.ps
原文链接:https://www.f2er.com/bash/383398.html

猜你在找的Bash相关文章