guidehomelab
2026-06-29neovimlazyvimeditor
Neovim + LazyVim 사용 가이드
날짜: 2026-02-21
대상: DevOps/SRE 워크플로우 (YAML, Bash, Dockerfile, Terraform, JSON)
1. 기본 개념
LazyVim은 Neovim 위에 올라가는 배포판이다. Leader key는 <Space>이며, 거의 모든 기능이 <Space> + 후속 키로 시작한다.
모르겠으면 <Space>만 누르면 된다 — which-key가 가능한 키 목록을 팝업으로 보여준다.
Vim 모드 요약
| 모드 |
진입 |
용도 |
| Normal |
Esc |
탐색, 명령 실행 (기본 상태) |
| Insert |
i, a, o |
텍스트 입력 |
| Visual |
v, V, Ctrl-v |
텍스트 선택 |
| Command |
: |
Ex 명령 실행 |
2. 파일 열기/닫기
nvim # LazyVim 대시보드로 시작
nvim file.yaml # 특정 파일 열기
nvim dir/ # 디렉토리 열기 (neo-tree)
nvim 안에서
| 키 |
동작 |
<Space>ff |
파일 이름으로 검색 (picker) |
<Space>fr |
최근 열었던 파일 |
<Space>fg |
파일 내용 검색 (live grep, ripgrep 사용) |
<Space>fb |
열린 버퍼 목록 |
<Space>e |
파일 탐색기 토글 (neo-tree 사이드바) |
<Space>E |
파일 탐색기 (루트 디렉토리) |
버퍼 (탭) 관리
| 키 |
동작 |
<S-h> (Shift+h) |
이전 버퍼 |
<S-l> (Shift+l) |
다음 버퍼 |
<Space>bd |
현재 버퍼 닫기 |
<Space>bo |
다른 버퍼 전부 닫기 |
<Space>bb |
버퍼 전환 (picker) |
저장/종료
| 키 |
동작 |
:w |
저장 |
:q |
닫기 |
:wq 또는 ZZ |
저장 후 닫기 |
:qa |
전체 종료 |
<Space>qq |
전체 종료 (LazyVim) |
3. 편집 — 자주 쓰는 조작
이동
| 키 |
동작 |
h/j/k/l |
좌/하/상/우 (화살표 대신) |
w / b |
단어 앞으로/뒤로 |
0 / $ |
줄 처음/끝 |
gg / G |
파일 처음/끝 |
{ / } |
빈 줄 단위로 이동 (문단) |
Ctrl-d / Ctrl-u |
반 페이지 아래/위 |
:<숫자> |
특정 줄로 이동 (예: :42) |
편집
| 키 |
동작 |
i |
커서 앞에 입력 시작 |
a |
커서 뒤에 입력 시작 |
o / O |
아래/위에 새 줄 만들고 입력 |
dd |
줄 삭제 (잘라내기) |
yy |
줄 복사 |
p / P |
아래/위에 붙여넣기 |
u |
되돌리기 (undo) |
Ctrl-r |
다시 하기 (redo) |
ciw |
단어 하나 교체 (change inner word) |
ci" |
따옴표 안의 내용 교체 |
di{ |
중괄호 안의 내용 삭제 |
. |
마지막 동작 반복 |
선택 (Visual 모드)
| 키 |
동작 |
v |
문자 단위 선택 시작 |
V |
줄 단위 선택 시작 |
Ctrl-v |
블록(직사각형) 선택 |
선택 후 d |
삭제 |
선택 후 y |
복사 |
선택 후 > / < |
들여쓰기/내어쓰기 |
4. 검색과 바꾸기
파일 내 검색
| 키 |
동작 |
/패턴 |
아래로 검색 |
?패턴 |
위로 검색 |
n / N |
다음/이전 결과 |
* |
커서 위 단어 검색 |
<Space>ur |
검색 하이라이트 끄기 |
파일 내 바꾸기
:%s/old/new/g " 파일 전체에서 old → new
:%s/old/new/gc " 하나씩 확인하며 바꾸기
:10,20s/old/new/g " 10~20줄에서만 바꾸기
프로젝트 전체 검색/바꾸기
| 키 |
동작 |
<Space>fg |
프로젝트 전체 내용 검색 (live grep) |
<Space>sw |
커서 위 단어로 프로젝트 검색 |
<Space>sr |
검색 & 바꾸기 (grug-far) |
5. Flash — 화면 내 빠른 점프
LazyVim에는 flash.nvim이 포함되어 있다. 화면에 보이는 아무 위치로 2~3키로 점프.
| 키 |
동작 |
s + 문자 2개 |
해당 위치로 점프 |
S |
treesitter 기반 선택 (코드 블록 단위) |
예시: sya → 화면에서 “ya"로 시작하는 위치에 라벨이 표시되고, 라벨 키를 누르면 점프.
6. 윈도우 분할
| 키 |
동작 |
<Space>- |
수평 분할 |
<Space>| |
수직 분할 |
<Ctrl-h/j/k/l> |
분할 창 사이 이동 |
<Space>wd |
현재 창 닫기 |
<Space>wm |
현재 창 최대화 토글 |
7. LSP — 코드 지능
첫 실행 시 Mason이 자동으로 LSP 서버를 설치한다. :Mason으로 상태 확인 가능.
코드 탐색
| 키 |
동작 |
K |
커서 위 심볼의 문서/설명 (hover) |
gd |
정의로 이동 (go to definition) |
gr |
참조 목록 (references) |
gI |
구현으로 이동 (implementation) |
진단 (에러/경고)
| 키 |
동작 |
]d / [d |
다음/이전 진단으로 이동 |
<Space>cd |
줄 진단 상세 보기 |
<Space>xx |
Trouble 진단 패널 토글 |
코드 액션
| 키 |
동작 |
<Space>ca |
코드 액션 (자동 수정 제안) |
<Space>cr |
이름 바꾸기 (rename) |
<Space>cf |
포맷팅 |
8. Git 연동
gitsigns.nvim이 변경 사항을 줄 옆에 표시한다.
| 키 |
동작 |
]h / [h |
다음/이전 변경 hunk로 이동 |
<Space>ghs |
hunk 스테이지 (git add 부분) |
<Space>ghr |
hunk 되돌리기 |
<Space>ghp |
hunk 미리보기 (diff) |
<Space>gb |
git blame (줄별 커밋 정보) |
LazyGit 연동 (<Space>gg)은 lazygit이 설치되어 있어야 동작한다:
sudo apt install lazygit # 또는 go install
9. 플러그인 관리
| 키/명령 |
동작 |
<Space>l |
Lazy 플러그인 매니저 열기 |
:Lazy sync |
플러그인 업데이트 |
:Lazy health |
플러그인 상태 점검 |
:Mason |
LSP/포매터/린터 서버 관리 |
:TSUpdate |
treesitter 파서 업데이트 |
:checkhealth |
전체 환경 건강 진단 |
10. DevOps 실전 워크플로우
YAML 편집 (Kubernetes manifest, docker-compose 등)
nvim deployment.yaml — yamlls가 자동으로 스키마 감지
- 자동완성: Insert 모드에서 타이핑하면 blink.cmp가 제안 표시
Tab / Shift-Tab — 제안 선택
Enter — 확정
K — 현재 필드 설명 (hover)
- 에러 발생 시 줄 왼쪽에 빨간 표시 →
<Space>cd로 상세 확인
Dockerfile 편집
nvim Dockerfile — dockerfile-ls 자동 활성
FROM, RUN 등 키워드 자동완성
- 빌드 스테이지 간 이동:
/FROM + n
nvim main.tf — terraform-ls 자동 활성
gd — 리소스/변수 정의로 점프
<Space>cf — terraform fmt 자동 적용
Bash 스크립트
nvim script.sh — bashls 자동 활성
- ShellCheck 진단이 자동으로 줄 옆에 표시
11. 유용한 Ex 명령
:e filename " 파일 열기
:w filename " 다른 이름으로 저장
:!command " 외부 쉘 명령 실행 (예: :!kubectl get pods)
:r !command " 명령 출력을 현재 위치에 삽입
:set wrap / :set nowrap " 줄 바꿈 토글
:noh " 검색 하이라이트 끄기
12. 설정 파일 위치
~/.config/nvim/
├── init.lua # 진입점 (수정 불필요)
├── lua/
│ ├── config/
│ │ ├── autocmds.lua # 자동 명령
│ │ ├── keymaps.lua # 커스텀 키 매핑
│ │ ├── lazy.lua # lazy.nvim 설정
│ │ └── options.lua # 에디터 옵션 ← 커스터마이징 완료
│ └── plugins/
│ ├── devops-extras.lua # DevOps extras ← 커스터마이징 완료
│ └── example.lua # 예제 (참고용)
플러그인 추가: lua/plugins/ 안에 .lua 파일 만들면 자동 로드.
빠른 참조 카드
파일 열기 <Space>ff 검색 /패턴
파일 탐색기 <Space>e 프로젝트 검색 <Space>fg
버퍼 전환 <Space>bb 바꾸기 :%s/a/b/g
버퍼 닫기 <Space>bd 전체 바꾸기 <Space>sr
저장 :w 정의 이동 gd
종료 :q / <Space>qq 참조 보기 gr
분할 <Space>- / | 문서 보기 K
창 이동 Ctrl-h/j/k/l 코드 액션 <Space>ca
되돌리기 u git hunk ]h / [h
다시하기 Ctrl-r 포맷팅 <Space>cf