Você pode fazer isso de dentro do Vim:
:w !pandoc -o file.pdf
Ou até mesmo escreva o buffer em um pipeline complexo:
:w !grep pattern | somecommand > file.txt
E então você pode sair do Vim sem salvar:
:q!
No entanto, considerando seu caso de uso específico, provavelmente há uma solução melhor usando vi
como seu editor de linha de comando. Supondo que você use bash
:
set -o vi
Isso define suas combinações de teclas como vi
. Assim, você pode editar seus comandos diretamente na linha de comando com atalhos de teclado vi
pressionando <Esc>
e digitando vi
comandos como x
, cw
, etc. (Você pode voltar no modo de inserção pressionando i
.)
Melhor ainda, e mais relevante para esta questão, você pode abrir o Vim para criar seu conteúdo de linha de comando diretamente. Basta digitar <Esc>v
e você receberá um buffer Vim vazio. Quando você salva e sai, esse é o comando em sua linha de comando e é imediatamente executado. Isso é muito mais flexível do que editar diretamente na linha de comando, já que você pode escrever um mini-script inteiro, se quiser.
Então, por exemplo, se você quiser escrever algum texto complicado e colocá-lo em pandoc imediatamente, você pode simplesmente digitar:
<Esc>v
Em seguida, edite o buffer do Vim até ter algo como:
cat <<EOF | pandoc -o file.pdf
stuff for pandoc
more stuff for pandoc
EOF
Em seguida, salve e saia (com :x
) e a coisa toda será executada como um comando shell.
Ele também estará disponível no histórico de comandos do seu shell.