aider.el : aider (การเขียนโปรแกรมคู่ AI) ภายใน Emacs
การแนะนำ
- คุณชอบฟีเจอร์ AI ของ Cursor AI Code Editor แต่ชอบที่จะอยู่ภายใน Emacs หรือไม่?
- Aider เป็นโปรแกรมคู่ AI ที่รู้จักกันดีในเทอร์มินัล
- aider.el มีอินเทอร์เฟซแบบโต้ตอบเพื่อสื่อสารกับ Aider ใน emacs
- โค้ด Elisp ส่วนใหญ่ในพื้นที่เก็บข้อมูลนี้สร้างโดย aider / aider.el
เหตุใดจึงต้องใช้ aider.el ใน Emacs
- เมนูป๊อปอัป: ไม่จำเป็นต้องจำคำสั่ง (เมนูช่วยเหลือชั่วคราว)
- เซสชันผู้ช่วยเฉพาะ Git Repository ใน Emacs: ระบุพื้นที่เก็บข้อมูล Git ของไฟล์ปัจจุบันโดยอัตโนมัติ และสร้างเซสชันผู้ช่วยใหม่สำหรับไฟล์นั้น อาจมีเซสชัน Aider หลายเซสชันสำหรับที่เก็บ Git ที่แตกต่างกัน
- วิธีอื่นๆ ในการเพิ่มไฟล์ลงในบัฟเฟอร์ aider
- เพิ่มไฟล์บัฟเฟอร์ปัจจุบัน: (aider-add-current-file)
- เพิ่มบัฟเฟอร์ทั้งหมดในหน้าต่างปัจจุบัน: (aider-add-files-in-current-window)
- แบทช์เพิ่มไฟล์จากบัฟเฟอร์ Dired (aider-batch-add-dired-marked-files): เพิ่มไฟล์ที่ทำเครื่องหมาย Dired หลายไฟล์ลงในบัฟเฟอร์ Aider
- การสนับสนุนการอธิบาย / การปรับโครงสร้างตามภูมิภาค
- อธิบาย: (ผู้ช่วย-ภูมิภาค-อธิบาย): คุณสามารถเลือกภูมิภาค (เช่น บล็อกโค้ด) ในไฟล์และขอให้ผู้ช่วยอธิบายได้
- Refactor: (aider-region-refactor): ขอให้ aider ปรับโครงสร้างใหม่ตามคำสั่งอินพุตของคุณ
- และอื่นๆ: เพิ่มฟังก์ชัน Elisp ของคุณเองเพื่อรองรับกรณีการใช้งานของคุณ คุณสามารถขอให้ aider / aider.el ทำสิ่งนั้นได้อย่างแน่นอน
การติดตั้ง
การติดตั้งวานิลลา Emacs
- ติดตั้งเครื่องช่วย
- ติดตั้งการพึ่งพาชั่วคราวโดยใช้ตัวจัดการแพ็คเกจของคุณ
- ติดตั้ง 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
- เพิ่มโค้ดต่อไปนี้ลงใน 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"
- เริ่มต้นและเปิดบัฟเฟอร์ aider:
[SPC] A o
- เพิ่มไฟล์ปัจจุบันด้วย
[SPC] A ac
ไม่จำเป็น
- คุณอาจต้องการลองใช้ aider-helm.el ไฟล์นั้นเพิ่มการรองรับประวัติคำสั่งและการสำเร็จจากหางเสือ
- หากคุณสนุกกับการเขียนคำสั่ง aider ในไฟล์แยกต่างหากและส่งไปยังเซสชั่น aider เช่นเดียวกับการทำงานกับ python หรือสคริปต์ R และส่งโค้ดบล็อกไปที่ REPL คุณอาจต้องการลองใช้ aider-minor-mode ตามค่าเริ่มต้น ผูก Cc Cn เพื่อส่งบรรทัดปัจจุบันไปยังเซสชัน aider และ Cc Cc เพื่อส่งภูมิภาคปัจจุบันไปยังเซสชัน aider
- เพื่อเปิดใช้งาน aider-minor-mode ให้กับไฟล์ใด ๆ ที่มี aider อยู่ภายในชื่อไฟล์โดยอัตโนมัติ
( add-hook 'find-file-hook
( lambda ()
( when ( and ( buffer-file-name )
( string-match-p " aider " ( buffer-file-name )))
(aider-minor-mode 1 ))))
ภาพหน้าจอ
- ในภาพหน้าจอด้านบน aider ถูกขอให้สร้างฟังก์ชัน aider-help และเพิ่มรายการที่เกี่ยวข้องลงในเมนู (หน้าต่างขวาบน)
- aider ได้รับคำสั่งและสร้างคอมมิตให้ (ล่างซ้าย)
ตัวอย่างแอปพลิเคชันที่เขียนด้วย aider.el
เครื่องมือเข้ารหัส Emacs AI อื่น ๆ
- ได้รับแรงบันดาลใจจาก และขอขอบคุณ:
- ancilla.el: AI Coding Assistant รองรับการสร้างโค้ด / เขียนโค้ดใหม่ / สนทนา
- chatgpt-shell: ChatGPT และ DALL-E Emacs เชลล์ + Org Babel
- copilot.el: ปลั๊กอิน Emacs สำหรับ GitHub Copilot
- copilot-chat.el: แชทกับ GitHub Copilot ใน Emacs