我目前使用的是MacVim,我想打印出我的工作树中的所有文件。有没有办法简单地做到这一点,也许使用hardcopy
命令?从Vim递归打印所有文件
回答
一个方便的方式对一组文件执行一个命令是收集他们的名字 列表,把它定义为新参数列表(请参见:help arglist
), ,然后遍历参数列表中的文件。
为了执行第一步骤中,使用
:args
命令与一个通配符 匹配期望的文件。例如,:args ./**/*
设置参数列表当前 目录及其子目录下的所有文件的名称;同样,
:args /tmp/**/*.{c,h}
选择在
/tmp
及其子目录下的所有.c
和.h
文件。有关通配符语法的详细信息,请参阅:help wildcard
。如果路径包含文件以打印一子树的根是未知 预先并且由脚本构建,使用其中变量
p
应该包含 的路径名的命令:exe 'args' join(map(split(glob(p . '/**/*'), '\n'), 'fnameescape(v:val)'))
根目录。
对于参数列表将文件发送到打印机,使用
:argdo
命令这些文件执行:hardcopy
命令,:argdo hardcopy!
的
!
符抑制选择打印 参数模态对话框。可以使用更复杂的命令将每个文件打印到位于与 文件相同的目录中的单独的PostScript文档 。
:argdo hardcopy! >%:p.ps
这里的印刷文件的名称与
.ps
后缀 级联以获得相应的PostScript文件的名称(参见:help cmdline-special
)。为加快
:argdo
-argument命令时,Vim通过将其添加到列表eventignore
忽略Syntax
自动事件。 这意味着,如果Syntax
自动命令没有被运行在:hardcopy
命令之前的参数列表中的文件 是:argdo
讷的 相应的打印文档不会有一个语法高亮显示 (在printoptions
syntax:y
集的情况下)。要为参数列表中的所有文件执行Syntax
自动命令,请首先使用以下 命令。:argdo set ei-=Syntax | do Syntax
为此在相同的运行印花,拼接的命令:
:argdo set ei-=Syntax | do Syntax | hardcopy! >%:p.ps
像往常一样,更彻底 – sehe
感谢您的答案家伙。这工作。 –
@ib。跟进这个问题。当我使用这个命令时,我似乎无法使语法突出显示工作。从我所知道的情况来看,它是为第一个做的,但是它没有打印到PostScript中。想知道,为什么呢?我已经尝试过在我的vimrc中设置printoptions = syntax:y“',但似乎没有办法。 –
编辑对不起,我误会了。
要打印所有,说PHP和C#的文件在工作目录:
:args ./*.{cs,php} **/*.{cs,php}
:argdo ha
只需':args **/*。{cs,php}'就可以做到这一点,IIRC。 – fachexot
- 1. 打印所有不使用递归/栈
- 2. 以递归方式打印文件夹中的所有文件和文件夹
- 3. 打印递归的文件夹中
- 4. 打印树递归
- 5. 用递归打印“*”
- 6. 打印递归树
- 7. 递归 - 打印数
- 8. 递归打印C++
- 9. 需要从文本文件递归地打印boss名称
- 10. 所有文件不打印
- 11. Xcode,打印所有文件?
- 12. 快速找到并打印所有文件的文件夹中,递归,从`node_modules`排除那些和'.git`
- 13. 以间距递归地打印文字
- 14. 打印递归步骤
- 15. Ç - 打印出递归
- 16. 递归栈打印方法
- 17. 打印使用递归
- 18. 打印模式递归
- 19. C向后递归打印
- 20. 打印文件夹和文件递归使用Windows批量
- 21. 在PowerShell中打印递归文件和文件夹计数?
- 22. 使用ssh打印递归文件夹/文件连接ftp
- 23. 以递归方式打印矩阵中的所有路径
- 24. 通过递归方法在xml中打印所有属性
- 25. Python无限递归在打印所有的孩子
- 26. C#打印字符串数组的所有子集与递归
- 27. 在java中递归地打印树中的所有节点
- 28. vim内的递归生成文件
- 29. 搜索词递归地打开文件在vim
- 30. 递归需要的所有文件
':qa'将关闭所有打开的文件...我不知道'了'可以修改? –