Ajusta Consult en Emacs para que las búsquedas asíncronas sean más rápidas
Los valores predeterminados de Consult son conservadores; reducir los retrasos de debounce, throttle y refresh acelera la retroalimentación sin cambiar la velocidad del motor de búsqueda.
El paquete Consult de Emacs ofrece comandos asíncronos como consult-fd, consult-find, consult-grep, consult-git-grep y consult-ripgrep. Por defecto, Consult aplica retrasos de debounce, throttle y refresh para evitar lanzar procesos en cada pulsación y para no saturar la UI. Esa prudencia hace que, al escribir, la lista de resultados parezca retrasarse unos décimas de segundo respecto a herramientas como Counsel.
Si prefieres una experiencia más reactiva, puedes bajar esos valores:
(setq consult-async-input-debounce 0.05)
(setq consult-async-input-throttle 0.1)
(setq consult-async-refresh-delay 0.05)
consult-async-input-debounce define cuánto tiempo debe pasar sin teclear antes de iniciar la búsqueda. Con 0,05 s el temporizador se reinicia en cada tecla y solo se lanza el proceso cuando el usuario se detiene brevemente. consult-async-input-throttle impone un límite máximo de frecuencia: nunca más de una búsqueda cada 0,1 s, aunque el debounce se cumpla antes. Por último, consult-async-refresh-delay controla la periodicidad con la que la UI se actualiza con los resultados; 0,05 s permite refrescos casi instantáneos cuando hay datos nuevos.
Estos ajustes no hacen que herramientas externas como ripgrep o fd sean más rápidas; ya están optimizadas para usar varios núcleos. Lo que se acelera es el bucle de retroalimentación dentro de Emacs: se reduce el tiempo de espera antes de lanzar el proceso y se muestra la salida más pronto.
Qué tener en cuenta
- Consumo de recursos: refrescos muy frecuentes incrementan la carga de CPU y la actividad del recolector de basura. En portátiles sin corriente esto puede drenar la batería rápidamente.
- Tamaño del proyecto: en repositorios gigantes, lanzar búsquedas demasiado a menudo puede generar procesos redundantes que compiten por I/O.
- Velocidad de escritura: usuarios que tipean rápido pueden beneficiarse del debounce, mientras que el throttle protege contra lanzamientos excesivos.
En máquinas potentes y conectadas a la corriente, los valores propuestos ofrecen una sensación de latencia mínima. En entornos más limitados, los valores predeterminados siguen siendo una opción razonable.
Para profundizar en la configuración o leer los comentarios de la comunidad, visita el repositorio oficial de Consult en GitHub y la discusión original en Lobsters.
Esta personalización permite que las búsquedas asíncronas de Consult se sientan tan inmediatas como las de otras herramientas, siempre que aceptes el mayor coste de CPU que conlleva.
