![VIM:按特定顺序打开多个文件](https://linux22.com/image/1206607/VIM%EF%BC%9A%E6%8C%89%E7%89%B9%E5%AE%9A%E9%A1%BA%E5%BA%8F%E6%89%93%E5%BC%80%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6.png)
因此我想从这个开始:我知道我可以使用、、等打开vim *
多个文件vim */file.txt
。vim directory/*
我正在寻找的是这个用例:
我有一个包含两个文件夹的目录,每个文件夹包含三个文件。我希望按特定顺序打开所有十个文件夹中的四个文件中的两个。可视化:
->a
|->a
|->b
|->c
->b
|->a
|->b
|->c
我希望按以下顺序打开:
a/c
a/a
b/c
b/a
这是最小用例,在实践中,我将其应用于一百多个文件。
答案1
类似这样的事情可能会有效:
TMP=$(mktemp); ARG= ; for d in * ; do ARG=\"$d/\"{c,a}\ $ARG ; done ; echo "vim $ARG" > $TMP ; . $TMP ; rm $TMP
创建一个临时文件来保存最终命令。ARG
初始化一个变量。for ... do
循环按所需顺序创建文件列表到变量中。命令行写入临时文件并从那里获取。关闭编辑器后,临时文件将被删除。
参数的长度是有限的,因此这是一个限制您可以通过这种方式同时打开的文件数量的因素。