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.