Wie entleere oder lösche ich den Emacs-Minipuffer?

8

Manchmal zeigt der Inhalt des Minibuffers die Ausgabe eines Befehls an (emacs 24). Dies ist keine große Unannehmlichkeit, wenn die Ausgabe nur eine Zeile ist. Es ist ärgerlicher, wenn der Befehl mehrere Zeilen lang ist und der Minibuffer viele Zeilen der Anzeige verwendet, die für etwas anderes verwendet werden könnten.

Gibt es eine Möglichkeit, den Inhalt des Minipuffers zu löschen?

Hinweis: Wenn ich M-! echo usage: foo ; echo ändere, ändert sich der Inhalt des Minibuchers in usage: foo .

Hinweis: Ich bin nicht in der rekursiven Bearbeitung, der Minipuffer ist nicht aktiv, mit C-g, M-x C-g , (message nil), M-x delete-minibuffer-contents, M-: (kill-buffer " Echo Area 0") wird der Minipuffer nicht gelöscht

    
Loic Dachary 03.03.2015, 11:45
quelle

5 Antworten

1

Obwohl ich nicht verstehe, warum der folgende Befehl den Minibuffer löscht: M-! echo ; echo

    
Loic Dachary 22.03.2015, 00:12
quelle
8

Normalerweise funktioniert C-g in diesen Fällen gut. Es wird "Quit" im Minibufer drucken, was nur eine Zeile und unaufdringlich genug ist.

Wenn Sie den Minibuffer programmgesteuert löschen müssen, rufen Sie (message nil) .

auf

Wenn C-g aus irgendeinem Grund nicht für Sie funktioniert, machen Sie einen neuen Befehl und eine Tastatur zum Löschen des Minipuffers

%Vor%     
shakurov 03.03.2015 12:39
quelle
2

Ich schätze, aus Ihrer Beschreibung ("der Minipuffer ist nicht aktiv") und Ihren Antworten auf andere Antworten ist, dass nicht der Minipuffer gelöscht werden muss - es ist das echo Bereich .

Dies ist der gleiche physikalische Raum, aber der Echobereich dient zur Ausgabe (z. B. message ), während der Minipuffer hauptsächlich zur Eingabe dient.

Um den Echobereich zu löschen, verwenden Sie (message nil) , wie vorgeschlagen. Oder verwenden Sie den Minipuffer, gefolgt von C-g - z. B. M-x C-g . Das kümmert sich normalerweise um den Job (aber siehe unten, um den Echo-Area-Puffer zu löschen, wenn Sie ihn wirklich löschen müssen).

Wenn es wirklich die Minibuffereingabe ist, die Sie löschen möchten, dann:

  • C-g (wiederholt, falls erforderlich) beendet den Minipuffer.
  • Sie können alle Textlöschtasten verwenden, um die Eingabe zu löschen, ohne zu beenden. Zum Beispiel wird C-x DEL ziemlich viel löschen (es ist backward-kill-sentence ). Ich verbinde M-k (normalerweise kill-sentence ) mit einem Befehl, der den gesamten Minibuffer-Eingang löscht (dies ist in der Fall) Eiszapfen zum Beispiel). Command delete-minibuffer-contents löscht alles aus.

(Sie können den Echo-Area-Buffer auch ausschalten, wenn er mit etwas Text, den Sie loswerden wollen, verschmutzt sein sollte. Der Buffer wird automatisch neu erstellt. Bei Vanilla Emacs ist das ein wenig problematisch interaktiv, aber Sie können es zumindest mit M-: (kill-buffer " *Echo Area 0*") machen (beachten Sie das Präfix SPC char).)

    
Drew 04.03.2015 06:03
quelle
1

Dieser Ausgang wird normalerweise gelöscht, sobald Sie etwas anderes in Emacs tun. Aber manchmal wird Emacs verwirrt und die Nachricht erscheint immer wieder im Echobereich.

Das Löschen des Puffers namens *Shell Command Output* würde das Problem lösen, aber wenn dies passiert, weigert sich Emacs, diesen Puffer zu löschen. Das Löschen des Inhalts dieses Puffers löst das Problem, aber die Ausgabe erscheint erneut im Puffer, wenn Sie das nächste Mal einen Shell-Befehl ausführen.

Sie können dieses Problem verhindern, indem Sie den Puffer umbenennen. Eine Möglichkeit, dies zu tun, besteht darin, diesen Puffer aktuell zu machen (z. B. mit C-x b oder M-x switch-to-buffer ) und M-x rename-uniquely auszuführen. Wenn Sie das tun und den Inhalt des Puffers löschen, wird das Problem vermieden.

Ich habe keine Ahnung, warum Emacs manchmal diesen Puffer nicht auslöschen will, aber glücklicherweise erlaubt er es umzubenennen, so dass er nicht mehr für die Befehlsausgabe wiederverwendet wird.

    
Larry Engholm 16.09.2016 21:03
quelle
0

Wenn Sie C-g drücken, wird der Echobereich gelöscht.

    
Lindydancer 03.03.2015 12:38
quelle

Tags und Links