Wie kann ich eine Vim-Auswahl oder einen Vim-Bereich in Bash ausführen, ohne ihn zu ersetzen?

12

Ich möchte einen Text in vim auswählen und ihn dann in bash ausführen. Ich kenne das folgende Verfahren:

  1. Wählen Sie Text mit Voder ausv
  2. :!!

Dies ersetzt jedoch die Auswahl durch die Ausgabe des Befehls. Was ist, wenn ich das nicht will?

Klaas van Schelven
quelle

Antworten:

21

Geben Sie den :wBefehl folgendermaßen ein:

:w !command

Während Sie es eingeben, sieht es folgendermaßen aus:

:'<,'>w !command

Sehen

:help :w_c
Garyjohn
quelle
3
Dies ist richtig, aber achten Sie darauf, nicht versehentlich zu tun :w! command. Wenn der Befehl ein Programm ist, auf das Sie Schreibzugriff haben, wird das Programm überschrieben, und Sie können die Änderung nicht rückgängig machen, da dies nicht der geöffnete Puffer war.
Ray
5

In vim 8.0 können Sie einen Zeilenbereich auswählen und ausführen :terminal bash. Dadurch wird ein Terminal geöffnet, das bashmit Ihrer Auswahl als stdin ausgeführt wird.

:terminal node, :terminal ruby, :terminal pythonScheint gut als auch an der Arbeit.

user1480704
quelle