Gostaria de executar alguns comandos do terminal dentro do vim

1

Existem duas coisas comuns que faço quando codifico algo. Eu abro esse arquivo no navegador ou executo-o no nó. Então, eu gostaria de criar alguns atalhos dentro do vim para esse efeito.

Eu gostaria que o F5 abrisse um novo terminal do gnome no diretório atual e executasse o http-server e então abrisse uma nova aba no firefox acessando a porta 8000.

Além disso, eu gostaria que o F6 abrisse um novo terminal do gnome e rodasse nodemon e então abrisse uma nova aba do firefox e atingisse a porta 8000.

nnoremap <F5> :exe ':silent !firefox %'
nnoremap <F5> :exe ':silent !firefox %'
    
por Costa 01.04.2015 / 21:24

1 resposta

1

Isto pode ser mais adequado para o stack do vi / vim em vi.stackexchange.com

Note que a tag: silent nega a entrada, então isto deve ser adicionado após o conjunto de comandos para executá-la na linha de comando. Eu tive um pouco de sorte com o seguinte.

:nnoremap <F5> :exe ':silent !firefox % 2>/dev/null &'^M^L

Por favor, note que você tem que pressionar ctrl-V para obter os bits ctrl-M e ctrl-L no final. Aqui está um resumo rápido do que eu adicionei.

2>/dev/null to avoid dumping stderr to screen.
& to allow us to drop back to vim without waiting for firefox to finish
^M to execute the command
^L to initiate a redraw (the command frequently blacked out my screen)

Estranhamente, sem o redirecionamento stderr, tive que esperar até que o firefox terminasse de descarregar os erros na tela e redesenhar novamente. Muito mais fácil simplesmente destruir essas linhas antes que elas possam exibir bits estranhos.

    
por 01.04.2015 / 22:52