개요
LazyVim = Neovim 위에 얹는 설정 배포판(distribution). Neovim(엔진) + lazy.nvim(플러그인 매니저) + LSP/treesitter/telescope가 미리 구성돼 있어, init.lua를 직접 짜지 않아도 즉시 IDE급으로 동작한다.
- 순정 Vim 기본기(01. Vim 기본)는 그대로 통한다. LazyVim은 그 위에 자동완성, 파일탐색, git 연동을 얹은 것.
- 표준 Neovim/lua 설정 패턴(
vim.keymap.set,opts)을 그대로 써서 프레임워크 종속 문법이 적다.
설치
# 의존: neovim 0.9+, git, ripgrep, fd, (선택) lazygit, node
brew install neovim ripgrep fd lazygit
# 기존 nvim 폴더 백업 (관례)
mv ~/.config/nvim{,.bak} 2>/dev/null
mv ~/.local/share/nvim{,.bak} 2>/dev/null
# 스타터 클론 후 .git 제거 (내 dotfiles로 관리)
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
nvim # 첫 실행에 플러그인 자동 설치- Ghostty는 Nerd Font가 내장이라 아이콘이 바로 나온다. 다른 터미널이면 Nerd Font 설치가 필요하다.
- node는 일부 LSP에 필요하다. nvm 있으면
nvm install --lts.
디렉터리 구조
~/.config/nvim/
├── init.lua # 진입점
├── lua/config/
│ ├── options.lua # Neovim 옵션
│ ├── keymaps.lua # 커스텀 키맵
│ ├── autocmds.lua # 자동 명령
│ └── lazy.lua # 플러그인 매니저 설정
├── lua/plugins/ # 커스텀 플러그인 스펙 (여기에 추가/override)
└── lazyvim.json # LazyExtras 선택 기록
- 커스터마이징은
lua/plugins/에 파일을 추가하면 lazy.nvim이 자동 병합한다. 기존 것을 지우는 게 아니라 override.
핵심 키바인딩 (leader = Space)
스페이스를 누르고 기다리면 which-key 메뉴가 떠서 다음 키 목록을 보여준다. 다 못 외워도 메뉴 따라가면 된다.
파일/검색
<leader><space>= 파일 찾기 (telescope)<leader>/= 프로젝트 전체 grep (ripgrep)<leader>fr= 최근 파일<leader>e= 파일 탐색기 (neo-tree)
버퍼/창
Shift+H/Shift+L= 이전/다음 버퍼<leader>bd= 현재 버퍼 닫기Ctrl+h/j/k/l= 창 간 이동
LSP/코딩
gd= 정의로 점프K= 문서(hover) 보기<leader>cr= 심볼 이름 변경(rename)<leader>ca= 코드 액션(quick fix 등)]d/[d= 다음/이전 진단(diagnostic)<leader>uf= 저장 시 자동포맷 토글
도구
<leader>gg= lazygitCtrl+/= 현재 위치에 터미널 토글s= flash 점프 (s + 글자로 화면 내 빠른 이동)
LazyExtras — 언어 지원 켜기
LazyExtras = 미리 만들어진 기능 묶음(“확장”). 켜면 해당 언어의 LSP + 자동완성 + treesitter + 포매터를 한 번에 설치/설정한다.
:LazyExtras
- 메뉴에서 스페이스로 토글, 재시작하면 Mason이 서버 설치.
- 직무 스택 기준 켤 것:
lang.terraform,lang.python,lang.yaml,lang.docker,lang.json,lang.git,lang.markdown- terraform → terraform-ls (자동완성, hover, 저장 시 fmt)
- python → pyright + ruff
- yaml → yaml-language-server (k8s 매니페스트에 유용)
- 선택은
lazyvim.json에 기록돼 dotfiles로 따라간다.
관리 명령
:Lazy= 플러그인 대시보드 (설치/업데이트/상태):Lazy sync= 플러그인 일괄 업데이트:Mason= LSP/린터/포매터 설치 관리 (:MasonLog로 실패 로그):LazyExtras= 기능 묶음 관리:LazyHealth= 의존성/설정 상태 점검:LspInfo= 현재 파일에 붙은 LSP 확인
lazygit 연동
LazyVim은 lazygit을 번들하지 않고 연동만 한다. brew install lazygit 후 <leader>gg로 열린다.
lazygit 안에서 빠른 커밋 흐름:
a= 전체 스테이지 (개별은 파일에서 스페이스)c= 커밋 (메시지 입력 후 엔터)P= 푸시,p= 풀?= 도움말