Wie kann ich die Ausgabe von stdout in vim umleiten?

706
Human

Ich möchte die Ausgabe von echoin vim anzeigen und nach dem Betrachten in eine Datei speichern. Ich habe es versucht echo $PATH | vim, erhalte aber folgende Fehlermeldung:

Vim: Warning: Input is not from a terminal Vim: Error reading input, exiting...  Vim: Finished. 

Was kann ich machen?

3
https://askubuntu.com/questions/510890/how-do-i-redirect-command-output-to-vim-in-bash bertieb vor 5 Jahren 0

2 Antworten auf die Frage

4
Ingo Karkat

Das -Dateinamenargument fehlt, das Vim anweist, den Puffer von stdin zu füllen. cp.:help --

echo $PATH | vim - 

Alternativ können Sie die Prozessersetzung Ihrer Shell verwenden, um einen temporären Dateideskriptor zu erstellen und Vim diese "virtuelle" Datei bearbeiten zu lassen.

vim <(echo $PATH) 
Wenn Sie Vim anstelle von weniger / mehr als Pager verwenden, versuchen Sie `| vim -R -` zum Deaktivieren der "Änderungen speichern" Beim Beenden auffordern. John Kugelman vor 5 Jahren 0
2
DavidPostill

Wie kann ich die Ausgabe von stout in vim umleiten?

Ihre Frage wurde auf AskUbuntu beantwortet.

Die einfachste Lösung ist, -zu Ihrem Befehl hinzuzufügen :

echo $PATH | vim - 

Sie können die Prozessersetzung verwenden (dies funktioniert auch bei Anwendungen, aus denen nicht gelesen werden kann STDIN):

vim <(ls -la) 

Oder nutzen Sie vimdie Funktion zum Lesen von STDIN:

ls -la | vim - 

Quelle Wie leite ich die Befehlsausgabe an vim in bash um? Antworte mit Chaos