Mache emacs next-buffer übersprungen * Nachrichten * buffer

7

Ich möchte eine einfache Änderung an Emacs vornehmen, damit die Befehle next-buffer und previous-buffer (die ich an C-x <RIGHT> und C-x <LEFT> gebunden habe, den *Messages* Puffer überspringt.

Ich benutze Emacs 24 und das Emacs Starter Kit .

Ich habe die folgenden verwandten Fragen und Antworten gelesen, aber sie sind nicht das, was ich will:

Hier sind einige der Gründe, warum sie nicht funktionieren:

  • Ich möchte es so einfach wie möglich halten. Weniger Konfigurationsänderungen sind besser.
  • Ich möchte *Messages* nicht töten oder verhindern.
  • (add-to-list 'ido-ignore-buffers "^\*Messages\*" hilft mit meinem C-x b ( ido-switch-buffer ), ändert aber nicht wie sich next-buffer und previous-buffer verhalten.
David J. 14.01.2013, 17:31
quelle

4 Antworten

6

Am einfachsten kann ich einen Rat für beide Funktionen definieren. Hier ist es für next-buffer . Ähnliches wäre für previous-buffer . Sie können auch eine Konfigurationsvariable definieren, um das Verhalten zu aktivieren / deaktivieren (oder den Hinweis zu aktivieren / deaktivieren):

%Vor%

Vielleicht können Sie Puffer anders als den String-Namen vergleichen, aber das wird funktionieren. Der Code für den vorherigen Puffer ist fast derselbe. Ich weiß auch nicht, ob es eine Möglichkeit gibt, die ursprüngliche Funktion aufzurufen, ohne den Rat einmal innerhalb des Rates selbst auszulösen, aber der Code funktioniert auch, wenn der Name des Puffers danach getestet wird (wird nur fehlschlagen, wenn Sie ihn gerade haben) one buffer, und es ist der Puffer für Nachrichten, einige Code kann prüfen, ob es nur einen Puffer gibt und nicht next-buffer erneut aufrufen.

Wenn Sie eine eigenständige Funktion verwenden möchten, die dasselbe tut:

%Vor%     
Diego Sevilla 14.01.2013, 17:53
quelle
13

Auf diese Weise können Sie die Endlosschleife vermeiden:

%Vor%

Dieser Code führt eine Schleife über nicht markierten Puffern ( "^\*" ) aus. Für Ihren Fall (nur *Messages* vermeiden) wäre es:

%Vor%

Sie können previous-code-buffer schreiben und nur jedes next-buffer durch previous-buffer ersetzen.

    
RubenCaro 19.07.2014 08:34
quelle
4

Dies ist, was ich benutze, basierend auf Diego's Antwort:

%Vor%

Es ist noch nicht großartig, weil es hängen bleibt, wenn es außer der skippable-buffers I-Liste keine anderen Puffer gibt. Ich benutze C-g , um aus der Schleife auszubrechen, wenn es als Hackaround passiert.

    
David J. 24.01.2013 21:51
quelle
2

Wie RubenCaros Antwort darauf hinweist, können die anderen Antworten in Endlosschleifen eintreten. Ich dachte, dass David James Ansatz einer überspringbaren Pufferliste ein bisschen netter war, also hier ist eine Variante davon.

%Vor%     
phils 19.07.2014 13:33
quelle

Tags und Links