1. Vim args命令与参数列表

Vim参数列表记录了在启动时作为参数传递给 Vim 的文件列表,在Vim命令行模式下执行 :args 命令可以打印出当前参数列表的内容。可以用 :next:prev 命令遍历参数列表中的所有文件。

注意:args 列表反映的并不一定是启动 Vim 时所传的参数,可以在任意时刻通过命令 :args arglist 改变参数列表的内容,arglist 包括文件名、通配符、或shell命令的输出结果。

1.1 用文件名指定文件

填充参数列表最简单的方式是在 :args 命令中逐一指定文件的名字,如 :args 1.txt 2.txt 3.txt

vim-args

在上图中,:args 命令输出中的 [] 字符表示参数列表中的哪个文件是活动文件。

1.2 用通配符指定文件

通配符 * 符号用于匹配文件或目录名称 0 个或多个字符,但范围仅局限于指定的目录而不会递归其子目录 (参见 :h wildcard);通配符 ** 也匹配 0 个或多个字符,但可以递归进入指定目录的子目录 (参见 :h starstar-wildcard)。

例如,:args **/*.js **/*.css 递归包含后缀为 .js 和 .css 文件, 而 :args **/*.* 递归包含当前目录下所有文件。

1.3 用反引号结构指定文件

Vim 会在 shell 中执行反撇号括起来的命令,例如,:args `cat 1.txt` 会把 cat 命令的输出作为 :args 命令的参数。

2. Vim argdo命令

:argdo 命令可以在参数列表中的每个文件上执行一条 Ex 命令(注意:不能是普通模式的命令)。

因此,:argdo 命令结合 :args 指定参数列表可以对任意个文件执行多种操作。

假设想把当前Vim参数列表中所有文件中的 test 替换为 Test,可以在Vim命令行参数下执行命令 :argdo %s/\<test\>/Test/ge | update

vim-argdo

Vim替换命令 s 的标志 g 使得每行中的全部 test 都被替换,标志 e 则用于避免某些文件中一个 test 都找不到时终止整个操作。 | 用来分隔两个命令,update 命令会在文件有改变时进行保存。

关于Vim替换命令的更多介绍,可以参考Vim教程网上的文章Vim替换命令substitute介绍

嗯,扫一扫就可以找到小女子我啦~