Как я автоматизирую ряд команд VIM, которые я использую все время?

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

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

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

1
задан 27.04.2011, 18:46

2 ответа

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

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

printf "%s\n" "%s/$/...end/" "g/delete.this.line/d" w q | ed filename
0
ответ дан 17.12.2019, 00:22

Теги

Похожие вопросы