(X)Emacs: buffer-cycle.el
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“ ;-)