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?

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

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.