Aider.el: Aider (programación de pares de IA) dentro de Emacs
Introducción
- ¿Te gustan las funciones de IA de Cursor AI Code Editor, pero prefieres permanecer en Emacs?
- Aider es una programación de pares de IA muy conocida y realmente buena en la terminal.
- Aider.el proporciona una interfaz interactiva para comunicarse con Aider en emacs.
- La mayor parte del código Elisp en este repositorio fue generado por Aider/Aider.el.
¿Por qué utilizar Aider.el en Emacs?
- Menú emergente: no es necesario recordar comandos. (menú-transitorio-ayer)
- Sesiones de ayuda específicas del repositorio Git en Emacs: identifica automáticamente el repositorio Git del archivo actual y crea una nueva sesión de ayuda para él. Pueden existir varias sesiones de ayuda para diferentes repositorios de Git.
- Más formas de agregar archivos al buffer auxiliar
- Agregar el archivo buffer actual: (aider-add-current-file)
- Agregar todos los buffers en la ventana actual: (ayder-add-files-in-current-window)
- Agregar archivos por lotes desde el búfer de Dired (aider-batch-add-dired-marked-files): agregue varios archivos marcados de Dired al búfer de Aider.
- Soporte de explicación/refactorización basado en regiones
- Explicar: (aider-region-explain): Puede seleccionar una región (por ejemplo, un bloque de código) en un archivo y pedirle a Aider que la explique.
- Refactor: (aider-region-refactor): Pídale a Aider que lo refactorice según sus instrucciones de entrada.
- Y más: agregue sus propias funciones de Elisp para respaldar su caso de uso. Ciertamente puedes pedirle a Aider / Aider.el que lo haga.
Instalación
Instalación de vainilla Emacs
- instalar ayudante
- Instale la dependencia Transient usando su administrador de paquetes.
- Instale Aider.el con el siguiente código:
( use-package aider
:straight ( :host github :repo " tninja/aider.el " :files ( " aider.el " ))
:config
; ; Use claude-3-5-sonnet cause it is best in aider benchmark
( setq aider-args '( " --model " " anthropic/claude-3-5-sonnet-20241022 " ))
( setenv " ANTHROPIC_API_KEY " anthropic-api-key)
; ; Or use chatgpt model since it is most well known
; ; (setq aider-args '("--model" "gpt-4o-mini"))
; ; (setenv "OPENAI_API_KEY" <your-openai-api-key>)
; ; ;;
Optional: Set a key binding for the transient menu
( global-set-key ( kbd " C-c a " ) 'aider-transient-menu ))
Instalación y configuración de Doom
- Agregue el siguiente código a su doom/packages.el
(package! aider :recipe ( :host github :repo " tninja/aider.el " :files ( " *.el " )))
- Ajuste y agregue el siguiente código a su doom/config.el
( use-package aider
:config
( setq aider-args '( " --model " " gpt-4o-mini " )))
El prefijo auxiliar es "A".
- Inicie y abra el buffer auxiliar:
[SPC] A o
- Agregue el archivo actual con
[SPC] A ac
Opcional
- Quizás quieras probar Aider-helm.el. Ese archivo agregó soporte para el historial de comandos y la finalización desde el timón.
- Si le gusta escribir comandos de Aider en un archivo separado y enviarlos a la sesión de Aider, al igual que trabajar en un script de Python o R y enviar un bloque de código a REPL, es posible que desee probar el modo menor de Aider. De forma predeterminada, vincula Cc Cn para enviar la línea actual a la sesión del asistente y Cc Cc para enviar la región actual a la sesión del asistente.
- Para habilitar automáticamente el modo menor Aider en cualquier archivo con Aider dentro del nombre del archivo
( add-hook 'find-file-hook
( lambda ()
( when ( and ( buffer-file-name )
( string-match-p " aider " ( buffer-file-name )))
(aider-minor-mode 1 ))))
Captura de pantalla
- En la captura de pantalla anterior, se le pidió a Aider que generara una función de ayuda y agregara la entrada correspondiente al menú (ventana superior derecha).
- Aider recibió el comando y generó el compromiso (abajo a la izquierda).
Ejemplo de aplicación escrita con Aider.el
Otra herramienta de codificación de Emacs AI
- Inspirado y gracias a:
- ancilla.el: AI Coding Assistant admite la generación de código/reescritura de código/discusión
- chatgpt-shell: Shells ChatGPT y DALL-E Emacs + Org Babel
- copilot.el: complemento de Emacs para GitHub Copilot
- copilot-chat.el: Chatea con GitHub Copilot en Emacs