(X)Emacs: buffer-cycle.el

Christian Kruse

Gerade hat mich mal wieder tierisch genervt, dass mein XEmacs beim Aufruf von bury-buffer durch alle buffer wechselt – auch durch die System-Buffer (z. B. *Scratch*, TAGS and so on), die mich gar nicht interessieren! Also habe ich mich hingesetzt und versucht, selber eine Funktion zu schreiben, die diese Funktion erfüllt. Das ist (war ja abzusehen… ;-) kläglich an meinen mangelnden LISP-Kenntnissen gescheitert. Also habe ich nochmal „gegoogelt“ und bin auf cycle-buffer.el gestossen. Lässt sich sehr einfach installieren: ins site-lisp-Verzeichnis kopieren und mit folgenden Befehlen laden und initialisieren:

<pre class=”brush: lisp”>(autoload ‘cycle-buffer “cycle-buffer” “Cycle forward.” t)(autoload ‘cycle-buffer-backward “cycle-buffer” “Cycle backward.” t)(autoload ‘cycle-buffer-permissive “cycle-buffer” “Cycle forward allowing *buffers*.” t)(autoload ‘cycle-buffer-backward-permissive “cycle-buffer” “Cycle backward allowing *buffers*.” t)(autoload ‘cycle-buffer-toggle-interesting “cycle-buffer” “Toggle if this buffer will be considered.” t)(global-set-key [(shift left)] ‘cycle-buffer-backward)(global-set-key [(shift right)] ‘cycle-buffer)(global-set-key [(control shift left)] ‘cycle-buffer-backward-permissive)(global-set-key [(control shift right)] ‘cycle-buffer-permissive)</pre></code><p> Das sorgt dafür, dass man mit <code>\S-left</code> rückwärts durch die Buffer laufen kann und mit <code>\S-right</code> vorwärts. Nimmt man jetzt noch Control hinzu, kann man mit <code>\C-\S-right</code> rückwärts und mit <code>\C-\S-left</code> vorwärts durch <strong>alle</strong> Buffer (also auch die System-Buffer) laufen.</p><p> Eine Kleinigkeit störte mich allerdings noch: die „Tab-Anzeige“ im XEmacs wird erst aufgefrischt, wenn man eine andere Taste drückt. Das lässt sich durch eine kleine Änderung an <code>cycle-buffer.el</code> verbessern: in Zeile 255 ist <code>(switch-to-buffer buf t)</code> zu ändern in <code>(switch-to-buffer buf)</code>.</p><p> Ich muss irgendwann wirklich Emacs-LISP lernen ;-) Ich bin sicher, wenn ich LISP können würde, hätte ich, anstatt eine Stunde suchen zu müssen, dass sehr schnell auch selber coden können.</p><p> Whatever, happy „emacsing“ ;-)</p>