1

Я запускаю некоторые текстовые файлы, написанные в Markdown через Pandoc, чтобы получить html, но он странным образом отображает теги со странными переносами строк и пробелами в тегах, поэтому я запускал несколько команд sed в VIM.

Должен ли я смотреть на Vimscripts или на макросы? Или сценарий (если я хочу объединить команды VIM с командой оболочки Pandoc)?

Я запускаю gVIM в Windows 7 и запускаю Pandoc через обычную оболочку Windows cmd, хотя обычно я делаю это изнутри VIM.

2 ответа2

1

Я думаю, это зависит от того, где выполняется большая часть обработки файлов и принятия решений, а также от возможностей сценариев, доступных вам за пределами 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
0

ed довольно легко писать сценарии.

printf "%s\n" "%s/$/...end/" "g/delete.this.line/d" w q | ed filename

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .