Aider.el: Aider (KI-Paarprogrammierung) in Emacs
Einführung
- Gefallen Ihnen die KI-Funktionen des Cursor AI Code Editors, bleiben Sie aber lieber in Emacs?
- Aider ist bekannt für seine wirklich gute KI-Paarprogrammierung im Terminal.
- Aider.el bietet eine interaktive Schnittstelle zur Kommunikation mit Aider in Emacs.
- Der größte Teil des Elisp-Codes in diesem Repository wurde von Aider / Aider.el generiert.
Warum Aider.el in Emacs verwenden?
- Popup-Menü: Sie müssen sich keine Befehle merken. (Aider-Transient-Menü)
- Git-Repository-spezifische Hilfssitzungen in Emacs: Identifizieren Sie automatisch das Git-Repository der aktuellen Datei und erstellen Sie eine neue Hilfssitzung dafür. Für verschiedene Git-Repositorys können mehrere Aider-Sitzungen vorhanden sein.
- Weitere Möglichkeiten zum Hinzufügen von Dateien zum Hilfspuffer
- Aktuelle Pufferdatei hinzufügen: (aider-add-current-file)
- Alle Puffer im aktuellen Fenster hinzufügen: (aider-add-files-in-current-window)
- Batch-Hinzufügen von Dateien aus dem Dired-Puffer (aider-batch-add-dired-marked-files): Fügen Sie dem Aider-Puffer mehrere mit Dired markierte Dateien hinzu.
- Regionsbasierte Explain-/Refactor-Unterstützung
- Erklären: (aider-region-explain): Sie können einen Bereich (z. B. einen Codeblock) in einer Datei auswählen und Aider bitten, ihn zu erklären.
- Refactor: (aider-region-refactor): Bitten Sie Aider, es anhand Ihrer Eingabeanweisung umzugestalten
- Und mehr: Fügen Sie Ihre eigenen Elisp-Funktionen hinzu, um Ihren Anwendungsfall zu unterstützen. Sie können Aider / Aider.el sicherlich darum bitten.
Installation
Vanilla Emacs-Installation
- Helfer installieren
- Installieren Sie die Abhängigkeit Transient mit Ihrem Paketmanager.
- Installieren Sie Aider.el mit dem folgenden Code:
( 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 ))
Doom-Installation und -Konfiguration
- Fügen Sie den folgenden Code zu Ihrer doom/packages.el hinzu
(package! aider :recipe ( :host github :repo " tninja/aider.el " :files ( " *.el " )))
- Passen Sie den folgenden Code an und fügen Sie ihn zu Ihrer doom/config.el hinzu
( use-package aider
:config
( setq aider-args '( " --model " " gpt-4o-mini " )))
Das Hilfspräfix ist „A“.
- Starten und öffnen Sie den Hilfspuffer:
[SPC] A o
- Fügen Sie die aktuelle Datei mit
[SPC] A ac
hinzu
Optional
- Vielleicht möchten Sie Aider-Helm.el ausprobieren. Diese Datei fügte Unterstützung des Befehlsverlaufs und der Vervollständigung vom Helm hinzu.
- Wenn Sie gerne Aider-Befehle in eine separate Datei schreiben und diese an die Aider-Sitzung senden, genau wie die Arbeit an Python- oder R-Skripten und das Senden von Codeblöcken an REPL, sollten Sie vielleicht den Aider-Minor-Modus ausprobieren. Es bindet standardmäßig Cc Cn, um die aktuelle Zeile an die Aider-Sitzung zu senden, und Cc Cc, um die aktuelle Region an die Aider-Sitzung zu senden.
- Um automatisch den Aider-Minor-Modus für jede Datei zu aktivieren, deren Dateiname Aider enthält
( add-hook 'find-file-hook
( lambda ()
( when ( and ( buffer-file-name )
( string-match-p " aider " ( buffer-file-name )))
(aider-minor-mode 1 ))))
Screenshot
- Im obigen Screenshot wurde Aider gebeten, eine Aider-Help-Funktion zu generieren und den entsprechenden Eintrag zum Menü (Fenster oben rechts) hinzuzufügen.
- Aider hat den Befehl erhalten und das Commit dafür generiert (unten links).
Beispielanwendung geschrieben mit Aider.el
Anderes Emacs AI-Codierungstool
- Inspiriert von und Dank an:
- ancilla.el: AI Coding Assistant unterstützt Codegenerierung/Codeumschreibung/Diskussion
- chatgpt-shell: ChatGPT- und DALL-E-Emacs-Shells + Org Babel
- copilot.el: Emacs-Plugin für GitHub Copilot
- copilot-chat.el: Chatten Sie mit GitHub Copilot in Emacs