微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐