gpt4 book ai didi

vim - 如何从 Vim 递归打印当前工作目录下的所有文件?

转载 作者:行者123 更新时间:2023-12-04 14:17:57 25 4
gpt4 key购买 nike

我目前正在使用 MacVim,我想打印出我工作树中的所有文件。有没有办法简单地做到这一点,也许使用 hardcopy命令?

最佳答案

对一组文件执行命令的一种便捷方法是
(1) 收集他们的名字列表,将其定义为新的参数列表
(请参阅 :help arglist ),然后 (2) 在该列表上迭代命令。
1. 要执行第一步,请使用 :args命令与
匹配所需文件的通配符。例如,

:args ./**/*
将参数列表设置为当前所有文件的名称
目录及其子目录;相似地,
:args /tmp/**/*.{c,h}
全选 .c.h /tmp 中的文件及其子目录。
有关通配符语法的详细信息,请参阅 :help wildcard .
如果包含要打印的文件的子树的根的路径是
事先未知并由脚本构建,请使用命令
:exe 'args' join(map(split(glob(p . '/**/*'), '\n'), 'fnameescape(v:val)'))
其中变量 p应该包含到那个路径
根目录。
2. 要将参数列表中的文件发送到打印机,请执行 :hardcopy这些文件的命令使用 :argdo命令:
:argdo hardcopy!
!说明符抑制用于选择打印的模式对话框
参数。
可以使用更复杂的命令将每个文件打印到
位于同一目录的单独 PostScript 文档
作为该文件:
:argdo hardcopy! >%:p.ps
这里打印文件的名称与 .ps 连接在一起。后缀
获取相应 PostScript 文件的名称(请参阅 :help cmdline-special )。
用于加速 :argdo参数命令,Vim 忽略 Syntax将自动命令事件添加到 eventignore列表。
这意味着如果 Syntax没有运行自动命令
参数列表中 :hardcopy 之前的文件命令是 :argdo ne, 相应的打印文件不会
语法突出显示(尽管 syntax:y 被设置在 printoptions 中)。
执行 Syntax参数中所有文件的自动命令
list,首先使用以下命令:
:argdo set ei-=Syntax | do Syntax
要在与打印相同的运行中执行此操作,请将两者连接起来
命令:
:argdo set ei-=Syntax | do Syntax | hardcopy! >%:p.ps

关于vim - 如何从 Vim 递归打印当前工作目录下的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com