Bad Daemons

Cosillas de emacs | Buscar en el buffer

El siguiente paquete es de los buenos. Para buscar en un buffer, se suele usar isearch, que se ejecuta con C-s. Con esto se puede buscar una palabra o varias siempre que estén en orden. Yo echaba en falta el poder buscar mediante expresiones regulares, cómo hace helm. Entonces encontré helm-swoop. Este permitia hacer justo lo que andaba buscando, sólo habia que bindearlo a C-s y a volar. Pero entonces perdía el comportamiento por defecto de isearch, lo cual no queria hacer, de poder evitarlo. Y el siguiente paquete fue la clave ace-isearch-mode.

Este paquete tiene tres dependencias,que son isearch, avy o ace-jump y helm-swoop. ace-jump y avy lo que hacen es pedir un carácter y luego mostrar las coincidencias en el buffer y asociar una letra a cada coincidencia. Al escribir esa letra asociada, mueve el cursor a esa posición. Hacen lo mismo sólo que de manera distinta, por lo que se puede escoger cualquiera de los dos.

avy.gif

Figura 1: avy

Al ejecutar la función de búsqueda, se presiona e a a y lleva a la primera e del buffer, que es la de el primer parágrafo.

ace.gif

Figura 2: ace

Al ejecutar la función de búsqueda, se presiona e a a y lleva a la primera e del buffer, que es la de el primer parágrafo.

Entonces, de que modo se combinan las tres funciones? Se presiona C-s y al escribir un carácter, se usa ace-jump. Al escribir cuatro más, osea cinco carácteres, se usa isearch, y al llegar a las seis o más, se usa helm-swoop. Muy versátil.

Ahora al lío. Se instalan los paquetes M-x package-install RET ace-jump, M-x package-install RET helm-swoop y M-x package-install RET ace-isearch.

Se configura con las siguientes lineas:

(global-ace-isearch-mode +1)
(custom-set-variables
 '(ace-isearch-input-length 7)
 '(ace-isearch-jump-delay 0.25)
 '(ace-isearch-function 'avy-goto-char)
 '(ace-isearch-use-jump 'printing-char))

Y a buscar más eficientemente.

Más información en su repositorio git.

La sección pertinente en mi configuración.