Итак, я хочу начать с этого: я понимаю, что могу открывать несколько файлов с помощью vim *
, vim * / file.txt
, vim directory / *
и т. Д.
Я ищу следующий вариант использования:
У меня есть каталог из двух папок, в каждой по три файла. Я хочу открыть два из четырех файлов в определенном порядке во всех десяти папках. Визуализировано:
->a
|->a
|->b
|->c
->b
|->a
|->b
|->c
Я хочу открыть в следующем порядке:
a/c
a/a
b/c
b/a
Это минимальный вариант использования, на практике я применяю его к сотне файлов.
Что-то вроде этого может сработать:
TMP=$(mktemp); ARG= ; for d in * ; do ARG=\"$d/\"{c,a}\ $ARG ; done ; echo "vim $ARG" > $TMP ; . $TMP ; rm $TMP
Создается временный файл для хранения последней команды. Инициализируется переменная ARG
. Цикл for ... do
создает список файлов в желаемом порядке в переменной. Командная строка записывается во временный файл и берется оттуда. После закрытия редактора временный файл будет удален.
Длина аргументов ограничена, так что это один из факторов, который налагает ограничение на количество файлов, которые вы одновременно можете открывать таким образом.