(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:

(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)

Das sorgt dafür, dass man mit \S-left rückwärts durch die Buffer laufen kann und mit \S-right vorwärts. Nimmt man jetzt noch Control hinzu, kann man mit \C-\S-right rückwärts und mit \C-\S-left vorwärts durch alle Buffer (also auch die System-Buffer) laufen.

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 cycle-buffer.el verbessern: in Zeile 255 ist (switch-to-buffer buf t) zu ändern in (switch-to-buffer buf).

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.

Whatever, happy „emacsing“ ;-)