Для этого есть два этапа: сначала получить все файлы, которые вы хотите отредактировать, в список аргументов, затем добавить имя файла в строки.
1) Добавить файлы в список аргументов.
Либо начните vim с «gvim * .txt» (если ваша оболочка может обработать 700 файлов, перечисленных в командной строке), либо загрузите gvim без открытых файлов (поэтому список аргументов пуст), а затем:
cd /path/to/files
" Get the list of files
let filelist = glob('*.txt')
" Add files to the argument list
for file in split(filelist, '\n')
exe 'argadd ' . file
endfor
EDIT:
Более чистый способ сделать это:
:cd /path/to/files
:exe 'args' glob('*.txt')
Конец редактирования
2) Выполнить необходимую фильтрацию для всех файлов:
:argdo %s/^/\=expand('%:t') . ' '/ | w
Пояснение:
argdo
запускает команду для каждого файла в списке аргументов.
%s/FROM/TO/
заменяет ОТ на TO
^
- начало строки (поэтому замена добавляет ТО к началу строки)
\=
означает, что TO должно быть результатом выражения
expand('%:t')
дает имя текущего файла (%), включая только хвост (': t'), поэтому имя каталога не указано.
. ' '
добавляет пробел.
|
- символ присоединения к команде, поэтому после подстановки он запускается:
w
, который записывает файл на диск.