Eu li muitos tópicos sobre a execução de comandos shell a partir do vim, muita documentação sobre comandos vim, .vimrc e tudo isso, mas eu simplesmente não consigo entender a linguagem "ex" ou os mapeamentos vim bem o suficiente para faça o que eu quero, então aqui estou fazendo essa pergunta. Aqui vai:
Eu tenho um buffer aberto no vim (usando o último MacVim estável no Snow Leopard, mas não no modo gui) cujo conteúdo posteriormente alimentarei em uma ferramenta de linha de comando que irá processá-lo e me fornecer alguma saída. O que eu quero é poder:
- Pressione uma tecla (ou combinação de teclas ou emita um comando vi)
- Executar meu utilitário de linha de comando com o conteúdo do meu buffer atual (que pode não ser salvo no arquivo) canalizado para ele
- Capture sua saída e mostre-a no vim, preferencialmente em uma nova janela dividida (como: ajuda)
Então, em resumo: eu posso rodar
$ cat ~/myinput.txt | myScript > output.txt
Mas eu quero fazer algo assim dentro do vim, colocando a saída em uma nova janela dividida, se possível.
UPDATE:
Claro, logo após postar, encontrei mais algumas informações sobre o assunto. Agora sei que posso fazer isso dentro do vim:
:%! myScript
E ele colocará a saída do myScript (com o conteúdo do buffer conectado a ele) no meu buffer atual, substituindo o que eu tenho nele agora.
Então, há uma maneira de colocar esses conteúdos em uma nova janela dividida, o buffer?
Obrigado!