aider.el : aider (AI 쌍 프로그래밍) Emacs 내부
소개
- Cursor AI Code Editor의 AI 기능이 마음에 들지만 Emacs에 머무르는 것을 선호하시나요?
- Aider는 터미널에서 정말 좋은 AI 쌍 프로그래밍으로 잘 알려져 있습니다.
- aider.el은 emacs에서 Aider와 통신할 수 있는 대화형 인터페이스를 제공합니다.
- 이 저장소에 있는 대부분의 Elisp 코드는 aider / aider.el에 의해 생성되었습니다.
Emacs에서 aider.el을 사용하는 이유는 무엇입니까?
- 팝업 메뉴: 명령을 기억할 필요가 없습니다. (에이더 임시 메뉴)
- Emacs의 Git 저장소별 보조자 세션: 현재 파일의 Git 저장소를 자동으로 식별하고 이에 대한 새 보조자 세션을 생성합니다. 다양한 Git 리포지토리에 대해 여러 보조자 세션이 존재할 수 있습니다.
- aider 버퍼에 파일을 추가하는 다양한 방법
- 현재 버퍼 파일 추가: (aider-add-current-file)
- 현재 창에 모든 버퍼 추가: (aider-add-files-in-current-window)
- dired 버퍼에서 파일 일괄 추가(aider-batch-add-dired-marked-files): Dired로 표시된 여러 파일을 Aider 버퍼에 추가합니다.
- 지역 기반 설명/리팩터링 지원
- 설명: (aider-region-explain): 파일에서 영역(예: 코드 블록)을 선택하고 aider에게 설명을 요청할 수 있습니다.
- 리팩터링: (aider-region-refactor): 입력 명령에 따라 리팩터링을 보조자에게 요청합니다.
- 기타: 사용 사례를 지원하기 위해 자신만의 Elisp 기능을 추가하세요. 확실히 aider / aider.el에게 그렇게 해달라고 요청할 수 있습니다.
설치
바닐라 Emacs 설치
- 보조 장치 설치
- 패키지 관리자를 사용하여 종속성 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 설치 및 구성
- 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 " )))
aider 접두사는 "A"입니다.
- aider 버퍼를 시작하고 엽니다.
[SPC] A o
-
[SPC] A ac
로 현재 파일을 추가합니다.
선택 과목
- aider-helm.el을 사용해 볼 수도 있습니다. 해당 파일에는 명령 기록 및 helm 완료 지원이 추가되었습니다.
- Python이나 R 스크립트에서 작업하고 코드 블록을 REPL로 보내는 것처럼 별도의 파일에 aider 명령을 작성하여 aider 세션으로 보내는 것을 좋아한다면 aider-minor-mode를 사용해 볼 수 있습니다. 기본적으로 Cc Cn을 바인딩하여 현재 라인을 에이더 세션에 보내고, Cc Cc를 바인딩하여 현재 영역을 에이더 세션에 보냅니다.
- 파일 이름 내부에 aider가 있는 모든 파일에 대해 aider-minor-mode를 자동으로 활성화하려면
( add-hook 'find-file-hook
( lambda ()
( when ( and ( buffer-file-name )
( string-match-p " aider " ( buffer-file-name )))
(aider-minor-mode 1 ))))
스크린샷
- 위 스크린샷에서 aider는 aider 도움말 기능을 생성하고 해당 항목을 메뉴(오른쪽 상단 창)에 추가하라는 요청을 받았습니다.
- aider는 명령을 수신하고 이에 대한 커밋을 생성했습니다(왼쪽 하단).
aider.el로 작성된 애플리케이션 예시
기타 Emacs AI 코딩 도구
- 다음에서 영감을 얻었으며 감사드립니다:
- ancilla.el: AI Coding Assistant 코드 생성/코드 재작성/토론 지원
- chatgpt-shell: ChatGPT 및 DALL-E Emacs 쉘 + Org Babel
- copilot.el: GitHub Copilot용 Emacs 플러그인
- copilot-chat.el: Emacs에서 GitHub Copilot과 채팅