포스트

Neovim 실력 향상 로드맵 — vim·neovim·lazyvim 글을 어떻게 읽을까

Vim 기본기 → Lua → Neovim 내부 → LazyVim 구조 → 플러그인 작성까지, 이 블로그의 vim/neovim/lazyvim 글을 단계별로 큐레이션.

Neovim 실력 향상 로드맵 — vim·neovim·lazyvim 글을 어떻게 읽을까

이 블로그에는 vim·neovim·lazyvim 세 디렉토리에 걸쳐 40여 편의 글이 있다. 처음 들어온 사람이 길을 잃지 않도록, “어떤 순서로 읽으면 Neovim 실력이 향상되는지”를 단계별로 정리했다.

어디서 시작할까

Vim/Neovim/배포판이 헷갈린다면 먼저 셋의 관계부터 잡자.

핵심
Vim vs Neovim vs 배포판 — 각 계층이 제공하는 기능“이 기능이 어디서 온 건지” 정리. 가장 먼저 읽기 좋은 한 장
Neovim을 어디서 시작할까 — Vanilla / kickstart.nvim / LazyVim 비교세 시작점의 학습 곡선·추천 맥락 비교. “어디서 출발할지” 결정용
Neovim 배포판/프레임워크 비교 소개LazyVim·NvChad·AstroNvim + kickstart.nvim 비교 — distro 간 차이
Vim & Neovim 작동 원리 정리모드·버퍼·윈도우·탭, 명령 파이프라인 — 모든 글의 전제

1단계 — Vim 기본기

이 단계는 LazyVim을 쓰더라도 결국 한 번은 통과해야 하는 지점이다. 키맵·레지스터·vimscript는 “Neovim/LazyVim 너머”에 있는 게 아니라 그대로 깔려 있다.

핵심
Vim/Neovim 레지스터 정리y/d/c/p가 거치는 저장소들. 명명·익명·블랙홀 레지스터
Vimscript 종합 가이드 (legacy)Vim 8 legacy 기준 문법 — 타입·스코프 prefix·비교 함정·함수/람다·List/Dict
Learn Vimscript the Hard Way 핵심 정리Steve Losh 책 55챕터에서 실전에 남는 핵심만. 한 장짜리 reference

2단계 — Neovim 내부 (Lua)

Neovim 설정·플러그인을 “고칠 수 있는” 수준이 되려면 Lua는 피할 수 없다. 시리즈 4부작 + 부록 1편으로 구성했다. [Lua 종합 가이드](/posts/neovim/2026-06-15-lua-syntax-guide/)가 hub고, 거기서 심화 3편으로 분기한다.

핵심
Lua 종합 가이드 (Neovim 컨텍스트)LuaJIT(5.1) 기준 문법 한 번에 정리. 타입·스코프·테이블·문자열 패턴·vim.* 헬퍼
Lua 모듈require/package.path, local M = {} return M 패턴, Neovim lua/ 자동 등록과의 연결
Lua 메타테이블__index/__newindex/__call, OOP 클래스 패턴, vim.opt가 일반 테이블처럼 보이는 이유
Lua 에러 처리error/assert로 던지고 pcall/xpcall로 잡기. Neovim 플러그인의 에러 관행
Lua vs Vimscript 성능정량 차이와 실제 체감되는 영역. “그냥 Lua가 빠르다”보다 한 단계 깊은 이해

3단계 — LazyVim 구조 이해

LazyVim을 “그냥 쓰는” 단계에서 “어떻게 동작하는지 알고 고치는” 단계로 넘어가는 구간. 이걸 모르면 extras override·spec merge에서 매번 막힌다.

핵심
LazyVim 주요 플러그인 정리UI/편집/Git/진단/LSP 각 영역에 어떤 플러그인이 들어가 있는지
LazyVim 기능 지도각 기능 영역(Git·검색·LSP·완성·DAP)이 어떤 플러그인 묶음으로 만들어지는지, snacks.nvim의 hub 역할
LazyVim 의존성 계층 — spec mergelazy.nvim → core → extras → 사용자 plugin이 합쳐지는 순서
LazyVim extra의 spec에 의존성만 보강하기같은 이름으로 다시 작성해 dependencies만 머지하는 패턴
Which-Key Keymaps 정리LazyVim 기본 키맵 그룹의 전체 지도
LazyVim <leader>x — Trouble 기반 코드 문제 탐색Diagnostics/Quickfix/Location List/Todo를 Trouble UI로 통합
LazyVim의 Git 플러그인 구성gitsigns · lazygit · snacks 3축

4단계 — 프로젝트별 설정

dotfiles에 깔린 글로벌 설정 위에, 프로젝트마다 다르게 적용하고 싶은 케이스. exrc / .nvim.lua 메커니즘이 핵심.

핵심
Neovim 프로젝트별 로컬 설정 가이드 — exrc · .nvim.lua · trustNeovim 0.9+ exrc 동작·검색 파일명·trust 시스템·함정 한 번에
프로젝트 .nvim.lua에서 dotfiles의 lua 모듈 재사용하기글로벌 dotfiles의 모듈을 프로젝트별 exrc에서 require하는 패턴
Windows에서 Dotfiles의 Neovim 설정 연결하기Windows에서 dotfiles 연결 시 경로 함정

5단계 — 플러그인 작성

이 단계까지 오면 “Neovim 사용자”에서 “Neovim 생태계 기여자”로 넘어간다. 4부작 + 실전 케이스 + 등록까지.

4부작 (이론)

핵심
플러그인을 Lua로 짤까 Vimscript로 짤까신규는 Lua가 표준, 단 부모 생태계가 Vimscript면 Vimscript가 자연스럽다
한 플러그인에 Lua와 Vimscript 섞기호출 경계 최소화, 흔한 안티패턴, 모범 분담
Neovim 플러그인 작성 규칙 — runtimepath 관례runtimepath 자동 로드, plugin/ vs lua/, 헬프·헬스체크·after/
직접 만든 플러그인 노출시키기 — 4가지 채널awesome-neovim · Dotfyle · VimAwesome · GitHub Topics

실전 케이스

핵심
vim-dadbod 어댑터 플러그인 만들기4부작을 실제로 적용한 케이스. 디렉토리 골격부터 dadbod-ui 트리 통합까지
awesome-neovim에 PR 보내기 — gh CLI로 한 번에CONTRIBUTING.md 규칙을 한 번에 통과시키는 절차
mini.nvim 관련 정리한 저장소에 잘 묶인 mini 시리즈를 읽으며 패턴 학습

환경 세팅·운영

트러블슈팅 모음

실력 향상 흐름과 분리해서 모았다. 같은 에러를 만났을 때 검색해서 들어오는 용도.


본인의 현재 위치에서 가까운 단계부터 진입하면 된다. 입문자는 “어디서 시작할까”부터, LazyVim 사용자는 3단계, 플러그인 만들고 싶은 사람은 2단계 → 5단계가 자연스러운 경로다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.