Ist es möglich, die Ausgabe von a :! Befehl in einem Split statt im ganzen Fenster?

11

Wenn ich eine vim-Sitzung mit zwei Teilungen habe und einen :!Befehl ausführe , wird das Ergebnis im gesamten Fenster angezeigt. Ist es möglich, dass die Ausgabe nur auf dem aktiven Split angezeigt wird?

drs
quelle
2
Nein das ist nicht möglich. Die Ausgabe if :!wird in der Befehlszeile angezeigt, von der es nur eine gibt, und kann nur am unteren Bildschirmrand angezeigt werden. Das Beste, was ich mir
vorstellen
@Carpetsmoker, Für mich geht die Ausgabe von :!nicht in die Kommandozeile. Stattdessen verschwindet die vim-Sitzung und das gesamte Terminalfenster zeigt die Terminalausgabe an, einschließlich dessen, was gedruckt wurde, bevor vimes aufgerufen wurde.
Dr.
1
Vielleicht liegt das an dem von Ihnen verwendeten Terminal und / oder der TERMEinstellung?
Martin Tournoij
Dieser Unterschied hat mit Altscreen (in screen) oder Alternate-Screen (in tmux) zu tun .
tommcdo

Antworten:

8

Sie können diesen Befehl verwenden:

:new | 0read ! command

Dies öffnet eine neue Aufteilung und versetzt die Ausgabe des Befehls in diese Aufteilung ( allerdings nicht in die derzeit aktive Aufteilung, wie Sie erwähnt haben ).

neu - erstellt einen neuen Split

read - um die Befehlsausgabe zu erhalten

Befehl - tatsächlicher Befehl

meain
quelle
6

Sie können einen Befehl ausführen, um genau dies zu tun:

  1. Öffnen Sie einen neuen Split (oder Tab)
  2. Führen Sie einen Befehl aus und zeigen Sie die Ergebnisse in dieser Aufteilung (oder Registerkarte) an.

Der Befehl wäre ungefähr so:

:Rsplit command

oder

:Rtab command

In Ihrem können .vimrcSie Folgendes schreiben:

" execute a command and show its output in a split window
command! -nargs=* -complete=shellcmd Rsplit execute "new | r! <args>"

" execute a command and show its output in a new tab
command! -nargs=* -complete=shellcmd Rtab execute "tabnew | r! <args>"

Hier erfahren Sie, wie Sie Ihre eigenen Befehle erstellen können :help :command.

Lucas Gabriel Sánchez
quelle
1

Das wird nicht möglich sein. Sie müssen Ihren Bildschirm mit einem anderen Tool wie tmux (IIRC), screen, ... teilen.

Wenn Sie nicht mit dem ausgeführten Programm interagieren müssen, können Sie die Ergebnisse jedoch direkt in ein beliebiges Fenster (im vim-Sinne :h windows) importieren, mit dem Sie möchten :r!command line.:h :r!

Luc Hermitte
quelle