aider.el : aider (البرمجة الزوجية للذكاء الاصطناعي) داخل Emacs
مقدمة
- هل تحب ميزات الذكاء الاصطناعي في Cursor AI Code Editor، ولكنك تفضل البقاء داخل Emacs؟
- Aider هو برنامج ذكاء اصطناعي ثنائي معروف وجيد جدًا في المحطة.
- يوفر aider.el واجهة تفاعلية للتواصل مع Aider في emacs.
- تم إنشاء معظم كود Elisp الموجود في هذا المستودع بواسطة aider / aider.el.
لماذا استخدام Aider.el في إيماكس؟
- القائمة المنبثقة: لا حاجة لتذكر الأوامر. (مساعد-القائمة العابرة)
- جلسات المساعدة الخاصة بمستودع Git في Emacs: تحديد مستودع Git للملف الحالي تلقائيًا وإنشاء جلسة مساعدة جديدة له. يمكن أن توجد جلسات مساعدة متعددة لمستودعات Git المختلفة.
- المزيد من الطرق لإضافة الملفات إلى المخزن المؤقت المساعد
- إضافة الملف المؤقت الحالي: (aider-add-current-file)
- إضافة كافة المخازن المؤقتة في النافذة الحالية: (aider-add-files-in-current-window)
- إضافة ملفات دفعة واحدة من المخزن المؤقت dired (aider-batch-add-dired-marked-files): قم بإضافة ملفات Dired المحددة المتعددة إلى المخزن المؤقت Aider.
- شرح على أساس المنطقة / دعم إعادة البناء
- اشرح: (aider-region-explain): يمكنك تحديد منطقة (على سبيل المثال، مقطع تعليمات برمجية) في ملف ومطالبة المساعد بشرحها.
- إعادة البناء: (aider-region-refactor): اطلب من المساعد إعادة هيكلته بناءً على تعليمات الإدخال الخاصة بك
- والمزيد: أضف وظائف Elisp الخاصة بك لدعم حالة الاستخدام الخاصة بك. يمكنك بالتأكيد أن تطلب من aider / aider.el القيام بذلك.
تثبيت
تركيب فانيلا إيماكس
- تثبيت مساعد
- قم بتثبيت التبعية Transient باستخدام مدير الحزم الخاص بك.
- قم بتثبيت Aider.el بالكود التالي:
( 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/packages.el الخاص بك
(package! aider :recipe ( :host github :repo " tninja/aider.el " :files ( " *.el " )))
- اضبط وأضف الكود التالي إلى doom/config.el الخاص بك
( use-package aider
:config
( setq aider-args '( " --model " " gpt-4o-mini " )))
البادئة المساعدة هي "A".
- ابدأ وافتح المخزن المؤقت المساعد:
[SPC] A o
- قم بإضافة الملف الحالي باستخدام
[SPC] A ac
خياري
- قد ترغب في تجربة aider-helm.el. أضاف هذا الملف دعمًا لسجل الأوامر والإكمال من الدفة.
- إذا كنت تستمتع بكتابة أمر مساعد في ملف منفصل وإرساله إلى جلسة مساعد، تمامًا مثل العمل على برنامج python أو R النصي وإرسال كتلة التعليمات البرمجية إلى REPL، فقد ترغب في تجربة وضع aider-minor. يقوم بشكل افتراضي بربط Cc Cn لإرسال السطر الحالي إلى جلسة المساعد، وCc Cc لإرسال المنطقة الحالية إلى جلسة المساعد.
- لتمكين وضع aider-minor تلقائيًا لأي ملف به مساعد داخل اسم الملف
( add-hook 'find-file-hook
( lambda ()
( when ( and ( buffer-file-name )
( string-match-p " aider " ( buffer-file-name )))
(aider-minor-mode 1 ))))
لقطة الشاشة
- في لقطة الشاشة أعلاه، طُلب من المساعد إنشاء وظيفة مساعدة وإضافة الإدخال المقابل إلى القائمة (النافذة اليمنى العلوية).
- تلقى المساعد الأمر وقام بإنشاء الالتزام به (أسفل اليسار).
مثال على التطبيق مكتوب بـaider.el
أداة ترميز الذكاء الاصطناعي الأخرى من Emacs
- مستوحاة من، والشكر ل:
- ancilla.el: مساعد الترميز AI يدعم إنشاء الأكواد / إعادة كتابة الأكواد / المناقشة
- chatgpt-shell: قذائف ChatGPT وDALL-E Emacs + Org Babel
- copilot.el: البرنامج المساعد Emacs لـ GitHub Copilot
- copilot-chat.el: الدردشة مع GitHub Copilot في Emacs