Como posso executar uma seleção ou intervalo do Vim no bash sem substituí-lo?

12

Gostaria de selecionar algum texto no vim e depois executá-lo no bash. Conheço o seguinte procedimento:

  1. selecione o texto usando Vouv
  2. :!!

No entanto, isso substitui a seleção pela saída do comando. E se eu não quiser isso?

Klaas van Schelven
fonte

Respostas:

21

Digite o :wcomando assim:

:w !command

À medida que você digita, aparecerá assim:

:'<,'>w !command

Vejo

:help :w_c
garyjohn
fonte
3
Isso está correto, mas tome cuidado para não fazer isso :w! commandpor engano. Se o comando for um programa ao qual você tem acesso de gravação, ele substituirá o programa e você não poderá desfazer a alteração, pois esse não foi o buffer que estava aberto.
Ray
5

No vim 8.0 , você pode selecionar um intervalo de linhas e executar :terminal bash. Isso abrirá um terminal executando bashsua seleção como stdin.

:terminal node, :terminal ruby, :terminal pythonParecem funcionar bem também.

user1480704
fonte