Warum nicht "history | Vim "Arbeit?

8

Ich möchte den Vim verwenden, um das Ergebnis von history (nicht in der Shell) zu sehen. Ich denke, dass history | vim funktioniert (benutze das Ergebnis von history als Eingabe von vim ), aber es kommt mit:

zurück %Vor%

Kann jemand das erklären?

    
Sayakiss 18.07.2013, 02:17
quelle

3 Antworten

23

Indem Sie in vim einfügen, ändern Sie den Standard-Eingabestream. Da vim ein interaktives Programm ist, muss die Standardeingabe die Konsole sein.

Wenn Sie in vim anzeigen möchten, sollten Sie ihm sagen, dass Sie die Datei von stdin lesen (indem Sie das Argument - angeben):

%Vor%

Alternativ können Sie auch more oder less :

verwenden %Vor%

Diese letzteren beiden sind vorzuziehen. Wenn Sie in vim pipen, sieht Ihre "Datei" Änderungen und Sie können nicht mit einem direkten Befehl :q beenden. Stattdessen müssen Sie quit durch :q! erzwingen, was ein wenig klobig ist.

Auf der anderen Seite können Sie more oder less beenden, indem Sie einfach q eingeben. Sehen Sie sich die Man-Page für diese beiden Programme an. Du wirst sie sehr oft benutzen.

Wie von Russell Silva in den Kommentaren empfohlen, können Sie vim im schreibgeschützten Modus öffnen, wenn Sie von stdin lesen. Geben Sie nur das Argument -R an. Dann können Sie normal beenden, ohne die Überschreibung zu benötigen:

%Vor%     
paddy 18.07.2013, 02:20
quelle
1

Abgesehen von vim - können Sie bash-Befehlsersatz versuchen wie:

%Vor%

Siehe auch:

kenorb 18.02.2015 12:10
quelle
-1

Das ist mir passiert, als ich versucht habe, es an die Hintergrundkonsole (& amp;) zu senden

Ein Skript verwendet:

%Vor%

entfernen & amp; das Problem ist weg.

    
Sergio Abreu 03.01.2017 20:31
quelle

Tags und Links