Oct 29

iswitchb

Tag: basicoverdrive @ 10:51 pm

Iswitchb significa «Interactive Switch Buffer» que es un modo interactivo que facilita manejo de múltiples buffers. Para activarlo debemos añadir a nuestro .emacs las siguientes líneas:

;;============================================================
;; iswitchb mode
;;============================================================
(require ‘iswitchb)
(iswitchb-mode)

Aunque también podemos agregar excepciones para que ignore algunos buffers que puede no interesarnos, éstas son las excepciones típicas, aunque todo dependerá de cada uno, y ésta es una decisión que debe tomar el usuario final:

;;============================================================
;; iswitchb ignores
;;============================================================
(add-to-list ‘iswitchb-buffer-ignore «^ «)
(add-to-list ‘iswitchb-buffer-ignore «*Messages*»)
(add-to-list ‘iswitchb-buffer-ignore «*ECB»)
(add-to-list ‘iswitchb-buffer-ignore «*Buffer»)
(add-to-list ‘iswitchb-buffer-ignore «*Completions»)
(add-to-list ‘iswitchb-buffer-ignore «*ftp «)
(add-to-list ‘iswitchb-buffer-ignore «*bsh»)
(add-to-list ‘iswitchb-buffer-ignore «*jde-log»)
(add-to-list ‘iswitchb-buffer-ignore «^[tT][aA][gG][sS]$»)

Cuando pulsemos «C-x b» para cambiar de buffer, aparecerá un listado de bufferes abiertos a los cuales podemos acceder, por defecto accederemos al buffer que aparece en primer lugar y resaltado de un color distinto. Si queremos acceder a dicho buffer tan sólo debemos pulsar ENTER como lo hacíamos de manera habitual. Si por el contrario lo que queremos es acceder a otro buffer de la lista, podemos pulsar C-s para ir al siguiente buffer o C-r para ir al buffer anterior, y repetir este proceso tantas veces como necesitemos.

Cuando pulsamos «C-x b» para cambiar de buffer, existe otra forma de acceder a un buffer sin necesidad de recorrer dicha lista si es demasiado extensa por ejemplo. Podemos escribir parte del nombre del buffer al cual queramos acceder, por lo que iswitchb ignorará aquellos buffers que no contengan el patrón buscado, acelerando así el proceso y acortando la lista tanto como se pueda, lo cual acelerará el proceso bastante.

También es posible usar las teclas de flecha (comunmente conocidas como arrow keys) en lugar de C-s y C-r que puede resultar un poco incomodo para los que no estén acostumbrados. Para ello deberemos añadir las siguientes líneas en nuestro .emacs:

(defun iswitchb-local-keys ()
(mapc (lambda (K)
(let* ((key (car K)) (fun (cdr K)))
(define-key iswitchb-mode-map (edmacro-parse-keys key) fun)))
‘((«<right>» . iswitchb-next-match)
(«<left>» . iswitchb-prev-match)
(«<up>» . ignore )
(«<down>» . ignore ))))

(add-hook ‘iswitchb-define-mode-map-hook ‘iswitchb-local-keys)

Existe la posibilidad de combinar iswitchb con icicles y otras opciones, para poder acceder a los menus de manera cíclica, la cual no considero fundamental, debido a que dichos listados pueden ser demasiado largos y puede ser una odisea tener que ir moviéndose elemento por elemento hasta acceder al item deseado, a excepción de si se filtra escribiendo parte de la cadena

Leave a Reply

You must be logged in to post a comment.