Neovim은 많은 개발자들에게 사랑받는 텍스트 편집기이지만, AI 코드 보조 도구와의 통합은 항상 아쉬운 부분으로 남아 있었습니다. 최근 Anthropic이 출시한 Claude Code는 VS Code와 JetBrains에서의 지원으로 큰 주목을 받았지만, Neovim 사용자들은 그 혜택을 누릴 수 없었습니다. 하지만 이제는 아닙니다! claudecode.nvim 플러그인이 Neovim 사용자들에게도 Claude Code의 뛰어난 기능을 제공합니다. 이 블로그 글에서는 claudecode.nvim의 설치 및 사용법을 상세히 설명하겠습니다.
claudecode.nvim 프로젝트 소개
claudecode.nvim은 Anthropic의 AI 코딩 보조 도구인 Claude Code를 Neovim에 통합하는 첫 번째 IDE 확장 플러그인입니다. 이 플러그인은 완전히 순수한 Lua로 작성되었으며, WebSocket 기반의 MCP 프로토콜을 구현하여 Neovim 사용자들에게 AI 지원 코딩 경험을 제공합니다. 이 프로젝트는 2,547개의 스타를 기록하며 활발히 사용되고 있습니다.
주요 특징
- 순수 Lua 구현:
vim.loop와 Neovim 내장 기능을 사용하여 만들어졌으며, 외부 의존성이 없습니다. - 100% 프로토콜 호환성: 기존의 Claude Code 확장과 동일한 WebSocket MCP 프로토콜을 구현합니다.
- 완전한 문서화:
PROTOCOL.md에서 통합 방법을 배울 수 있습니다. - 최초 출시: 기존의 경쟁자보다 빠르게 Neovim 지원을 출시했습니다.
- AI로 개발: Claude를 사용하여 Claude의 프로토콜을 역설계했습니다.
설치 가이드
claudecode.nvim의 설치는 매우 간단합니다. Neovim에서 플러그인 관리 도구를 사용하여 설치할 수 있습니다. 여기서는 packer.nvim을 사용한 예제를 보여드리겠습니다.
require('packer').startup(function()
use {
"coder/claudecode.nvim",
requires = { "folke/snacks.nvim" },
config = true,
keys = {
{ "<leader>a", nil, desc = "AI/Claude Code" },
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
{ "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
{ "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
{ "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
{ "<leader>am", "<cmd>ClaudeCodeSelectModel<cr>", desc = "Select Claude model" },
{ "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },
{
"<leader>as",
"<cmd>ClaudeCodeTreeAdd<cr>",
desc = "Add file",
ft = { "NvimTree", "neo-tree", "oil", "minifiles", "netrw" },
},
{ "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
{ "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
},
}
end)
이렇게 설정하면 플러그인이 자동으로 필요한 설정을 구성해줍니다.
필수 요구 사항
로컬 설치 구성
Claude Code를 로컬로 설치한 경우, 플러그인이 로컬 경로를 사용하도록 구성해야 합니다. claude migrate-installer 명령어를 사용하여 글로벌 설치를 로컬로 이동할 수 있습니다.
which claude
설치 유형을 확인한 후, 로컬 설치인 경우 다음과 같이 구성합니다.
require('packer').startup(function()
use {
"coder/claudecode.nvim",
requires = { "folke/snacks.nvim" },
config = function()
require('claudecode').setup({
terminal_cmd = "~/.claude/local/claude", -- 로컬 설치 경로 지정
})
end,
keys = {
-- 키맵핑
},
}
end)
기본 사용법
플러그인이 설치되고 설정이 완료되면, 다음과 같은 명령어로 Claude Code와 상호작용할 수 있습니다:
<leader>ac: Claude를 토글합니다.<leader>af: Claude에 포커스를 맞춥니다.<leader>ar: Claude를 재개합니다.<leader>as: 선택한 코드를 Claude에게 전송합니다.이러한 명령어들은 AI 코딩 보조 도구를 사용하여 코드 완성, 오류 수정, 기능 추가 등을 지원합니다. 예를 들어, 특정 함수의 구현을 요청하거나 주석을 추가하는 등의 작업을 쉽게 수행할 수 있습니다.
활용 시나리오
- 코드 리뷰: 작성한 코드를 Claude에게 보내고, 피드백을 받을 수 있습니다.
- 코드 완성: 코드를 작성하는 동안 필요한 기능이나 메서드를 자동으로 제안받아 빠르게 작업할 수 있습니다.
- 버그 수정: 특정 오류를 설명하고 수정 방법을 요청하여 빠르게 문제를 해결할 수 있습니다.
유사 도구와 비교
AI 코딩 보조 도구로는 TabNine, GitHub Copilot 등이 있습니다. 하지만 claudecode.nvim은 Neovim 사용자에게 최적화된 환경을 제공하며, 코드 작성 시 AI의 도움이 필요한 순간에 즉각적으로 반응합니다. TabNine과 GitHub Copilot은 유료 모델이 필요한 경우가 많지만, claudecode.nvim은 MIT 라이선스 하에 무료로 제공됩니다.
마무리
Neovim 사용자이시라면 claudecode.nvim은 꼭 시도해볼 만한 플러그인입니다. AI 코딩 보조 도구의 도움으로 개발 생산성을 극대화할 수 있습니다. GitHub에서 이 프로젝트를 확인하고 설치해보세요!