homelab89 Docs Logs Legacy Files ☰ TOC 🌓
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 등)

  1. nvim deployment.yaml — yamlls가 자동으로 스키마 감지
  2. 자동완성: Insert 모드에서 타이핑하면 blink.cmp가 제안 표시
    • Tab / Shift-Tab — 제안 선택
    • Enter — 확정
  3. K — 현재 필드 설명 (hover)
  4. 에러 발생 시 줄 왼쪽에 빨간 표시 → <Space>cd로 상세 확인

Dockerfile 편집

  1. nvim Dockerfile — dockerfile-ls 자동 활성
  2. FROM, RUN 등 키워드 자동완성
  3. 빌드 스테이지 간 이동: /FROM + n

Terraform (.tf) 편집

  1. nvim main.tf — terraform-ls 자동 활성
  2. gd — 리소스/변수 정의로 점프
  3. <Space>cfterraform fmt 자동 적용

Bash 스크립트

  1. nvim script.sh — bashls 자동 활성
  2. 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

Files