Comment puis-je exécuter une sélection ou une plage Vim dans bash sans la remplacer?

12

Je voudrais sélectionner du texte dans vim puis l'exécuter dans bash. Je connais la procédure suivante:

  1. sélectionner du texte en utilisant Vouv
  2. :!!

Cependant, cela remplace la sélection par la sortie de la commande. Et si je ne veux pas ça?

Klaas van Schelven
la source

Réponses:

21

Tapez la :wcommande comme ceci:

:w !command

Lorsque vous le tapez, il apparaîtra comme ceci:

:'<,'>w !command

Voir

:help :w_c
garyjohn
la source
3
C'est correct, mais attention à ne pas le faire :w! commandpar erreur. Si la commande est un programme auquel vous avez accès en écriture, elle écrasera le programme et vous ne pourrez pas annuler la modification car ce n'était pas le tampon qui était ouvert.
Ray
5

Dans vim 8.0 , vous pouvez sélectionner une plage de lignes et exécuter :terminal bash. Cela ouvrira un terminal fonctionnant bashavec votre sélection en tant que stdin.

:terminal node, :terminal ruby, :terminal pythonSemblent fonctionner bien aussi.

user1480704
la source