Como executar um comando shell no Vim e ter o resultado impresso abaixo?

4

Gostaria de editar os comandos do shell do vim e executá-los a partir do vim. Atualmente eu uso !!sh (canaliza a linha atual para o comando sh), mas isso remove a própria linha.

É possível executar o comando em um shell e colar o resultado abaixo dessa linha?

    
por MJB 27.01.2011 / 15:11

3 respostas

7

Como Clausi apontado , yyp!!sh yanks (copia) a linha atual para o registrador, cola a linha abaixo da original e substitui a linha inferior pela saída do comando.

Para salvar pressionamentos de tecla, você pode mapear essa ação adicionando a próxima linha no arquivo ~/.vimrc :

% bl0ck_qu0te%

Desta forma, toda vez que F5 é pressionado no modo de comando, a linha será executada e o resultado será mostrado abaixo da linha.

    
por MJB 28.01.2011 / 17:13
2

Que tal copiar / colar a linha antes de executar (algo como yyp!!sh )?

    
por Clausi 27.01.2011 / 16:18
0

Digite o comando shell no buffer, por exemplo last | head ,
e no modo de linha de comando :read !^R.
Claro que, em vez de digitar literalmente ^R hit CTRL-R combinação de teclas.
Pesquise em :help c_ctrl-r . . significa "o último texto inserido".
Se o comando for uma palavra, por exemplo, vnstat ,
coloque o cursor nessa palavra e digite :read !<cword> .

    
por Casual Coder 27.01.2011 / 22:44