有没有办法从Vim中打开目录中的所有文件?因此:command,这实际上表示“将所有文件打开/some/path到缓冲区中”。
理想情况下,最好以递归方式在目录下打开所有文件。
Answers:
您要查找的命令是args:
例如:
:args /path_to_dir/*
将打开目录中的所有文件
:tab all可将它们放在单独的选项卡中。
"/path_to_dir/subdir/" Illegal file name)。快速的解决方案是运行第二条命令argd */,再次将其从列表中删除
:argdo source my_commands_batch.vim
一种不需要弄乱的方法args是将文件列表放在文本文件中,然后使用:so命令在该文件中运行命令。
例如,如果要打开.php以给定目录结尾的所有文件,请首先创建一个files.txt包含文件列表的文件,并在其前面加上要用来打开它们的任何命令。
sp alpha.php
sp bravo.php
sp charlie.php
然后,在vim中:
:so files.txt
如果文件列表很大,则files.txt通过将输出重定向ls到文件,然后使用vim宏sp在每个文件名之前添加前缀来快速生成文件是相对简单的。
显然,这不如使用argsandargdo命令优雅,但这些命令也要复杂得多。
也许也可以通过命令行上的单个命令来执行此操作,但是即使16年之后,我仍然发现vim编程很奇怪而且很神秘。
递归打开文件的另一种方法
find . -type f -exec vi {} \;
kate **/*(^/)(使用zsh globbing语法)可以完成所需工作:递归地从给定目录中打开文件。它不是“从内部”,根本没有使用vim,而是“还需要做”。甚至kate ~/.vimrc ~/.bashrc。完全省略“ from withing”,“ from the给定目录”和“ recursively”,但它“还做了所需的工作”:打开文件。
**递归匹配文件。例如:args /path_to_dir/**