Я думаю, это зависит от того, где выполняется большая часть обработки файлов и принятия решений, а также от возможностей сценариев, доступных вам за пределами Vim. Поскольку большая часть обработки, которую вы выполняете, похоже, выполняется с помощью последовательности программ, возможно, в конвейере, я был бы склонен поместить все это в сценарий оболочки или командный файл и запустить его из Vim. (Вы писали, что используете sed. У вас также есть доступ к оболочке Unix?) Если у вас нет доступа к оболочке Unix и вы ограничены набором команд пакетного файла, тогда вы можете поместить все команды в функцию Vim. Помещение команд в функцию Vim дает вам немного больше гибкости и упрощает программирование, чем попытка процитировать все как раз для команды Vim или отображения.
Вы можете поместить команды оболочки в функции довольно легко, как это
function Foo() !echo "hello" endfunction
или это:
function Bar() call system('echo "hello"') endfunction
Увидеть
:help usr_41.txt
и особенно
:help 41.6 :help 41.7
так же как
:help system()
подробнее об этом. Подробнее о командах и сопоставлениях см.
:help usr_40.txt
Вы можете написать команду для вызова вашей функции следующим образом:
:command Foo call Foo()
так что вы можете выполнить свою функцию с
:Foo