Как я могу выполнить несколько команд редактора, хранящихся в файле в VIM? - PullRequest
3 голосов
/ 09 марта 2010

Я прочитал другие посты, например, vim: Выполнение списка команд редактора и других. Ответ не ясен для меня. У меня есть несколько команд редактора, которые я сгенерировал из запроса SQL. Он использует: s / foo / bar для изменения кодов стран (с FIPS на нестандартный набор кодов). Вот пример файла:

:s/CB/CAMBO
:s/CQ/NMARI
:s/KV/KOSOV
:s/PP/PAPUA
...

Я сохранил это в файле с именем fipsToNonStd.vim (не уверен относительно правильного расширения). Я хочу выполнять эти команды одну за другой. Какой самый простой способ сделать это?

Спасибо большое! ТАК Скалы!

Ответы [ 4 ]

7 голосов
/ 09 марта 2010

Я думаю, вы ищете команду :source.

Существует электронная документация , которую вы можете увидеть в vim, запустив :help :source.

3 голосов
/ 10 марта 2010

Как правило, вы хотите поместить все эти команды в файл .vim. Например, вы можете сохранить их в файле с именем convert.vim :

:%s/CD/CAMBO/g
:%s/CQ/NMARI/g
" etcetera

На этом этапе вы можете загрузить любой файл в Vim и ввести в своем редакторе следующее:

:so convert.vim

С другой стороны, если это то, что вам нужно сделать в довольно скриптовой основе, то зачем вообще открывать vim? Сделай все это из командной строки. Вы можете сделать это, выполнив что-то вроде следующего. Измените convert.vim еще раз:

:%s/CD/CAMBO/g
:%s/CQ/NMARI/g
" etcetera
:w!
:q

Тогда вы можете просто сделать все это в командной строке. Предположим, ваш «входной файл», который требует преобразования, называется data.txt . Из командной строки вы можете сделать:

vim -s convert.vim data.txt

Это обработает / преобразует ваши данные для вас, сохранит и будет сделано.

1 голос
/ 09 марта 2010

: исходное имя файла

0 голосов
/ 28 марта 2010

Вы можете поместить эти строки в функцию, которая будет вызвана позже:

...