Лично, и, возможно, отчасти потому, что я использовал Unix задолго до того, как появился vim (черт, у первой версии Unix, которую я использовал, тоже не было "vi" - но это другая история), я обычно использовал бы 'оболочку' script '(или, более вероятно, скрипт Perl), чтобы сделать преобразование. При преобразовании данных CSV в INSERT работа с кавычками / не-кавычками и встроенными запятыми в полной общности является беспорядочной - вероятно, я бы хотел использовать скрипт Perl с Text :: CSV_XS, чтобы гарантировать правильный синтаксический анализ. Затем я запустил бы этот сценарий для диапазона текста, который нужно конвертировать.
Одним из преимуществ этого является сфокусированный инструментальный подход - один инструмент выполняет одну работу правильно. В моем личном каталоге bin содержится 300 или более скриптов и программ; каталог RCS содержит более 500 сценариев.
Это не значит, что скрипты в vim плохие. Я использую (более или менее) сложные команды карты для написания сложных манипуляций, часто, когда мне нужно сделать одно и то же изменение для набора файлов, и когда я не думаю, что будет стоить создать сценарий для работа. Однако, если я думаю, что изменения могут понадобиться более одного раза, я запишу их. Например, GCC начал понимать (около 2005 г.), что не нужно встраивать неиспользуемые статические строки в объектные файлы, что означало, что моя информация об управлении версиями не была видна. Итак, в течение нескольких лет, когда я редактировал исходные файлы, я преобразовывал статическое (фиксированное) имя в публичное - неохотно, но обязательно AFAIAC. У меня есть скрипт, который редактирует меня, поэтому, когда мне нужно внести изменения в файл, я запускаю этот скрипт для этого. У меня есть другой скрипт, который обновляет информацию об авторских правах; Мне нужно это каждый раз, когда я впервые изменяю файл в данном году. Да, я мог бы спрятать это как что-то в vim - я вырос, думая, что отдельный сценарий лучше, не в последнюю очередь потому, что если я переключаюсь на любой другой редактор, я все равно могу использовать сценарий.