Neovim + LazyVim DevOps 환경 구성
날짜: 2026-02-21 목적: DevOps/SRE 작업(YAML, Bash, Dockerfile, Terraform, JSON)에 최적화된 nvim IDE 환경
설치 요약
| 항목 | 내용 |
|---|---|
| Neovim | v0.11.6 (appimage, /usr/local/bin/nvim) |
| 배포판 | LazyVim (starter template) |
| LSP | yaml, bash, dockerfile, terraform, json (extras로 자동 구성) |
| 파일 탐색 | snacks.nvim (LazyVim 기본 picker) + ripgrep + fd |
| 구문 강조 | treesitter |
| 아이콘 | JetBrainsMono Nerd Font |
설치된 구성 요소
시스템 패키지
sudo apt install -y ripgrep fd-find cmake
Neovim (appimage)
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage
chmod +x nvim-linux-x86_64.appimage
sudo mv nvim-linux-x86_64.appimage /usr/local/bin/nvim
Nerd Font
- JetBrainsMono Nerd Font →
~/.local/share/fonts/ - 터미널 에뮬레이터에서 "JetBrainsMono Nerd Font" 선택 필요
LazyVim
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
커스텀 설정 파일
~/.config/nvim/lua/plugins/devops-extras.lua
DevOps 관련 LazyVim extras 활성화:
- lang.yaml — yamlls LSP, YAML treesitter
- lang.json — jsonls LSP, JSON treesitter
- lang.docker — dockerls LSP, Dockerfile treesitter
- lang.terraform — terraform-ls LSP, HCL treesitter
~/.config/nvim/lua/config/options.lua
- 줄번호 + 상대 줄번호
- 탭/들여쓰기 2칸 (YAML 기본)
- 시스템 클립보드 연동 (
unnamedplus)
주요 키바인딩 (LazyVim 기본)
| 키 | 동작 |
|---|---|
<Space> |
Leader key |
<leader>ff |
파일 검색 (picker) |
<leader>fg |
라이브 grep |
<leader>e |
파일 탐색기 (neo-tree) |
<leader>l |
Lazy 플러그인 매니저 |
K |
LSP hover 문서 |
gd |
정의로 이동 |
<leader>ca |
코드 액션 |
<leader>cf |
포맷팅 |
사후 작업 (수동)
- 터미널 폰트 설정: 터미널 에뮬레이터에서 "JetBrainsMono Nerd Font"로 변경
- LSP 서버 설치: 첫
nvim실행 시 Mason이 자동으로 LSP 서버 설치 (:Mason으로 확인) - treesitter 파서 설치: 파일을 열면 자동 설치됨 (
:TSInstall yaml json bash dockerfile hcl)
업데이트 방법
nvim 내에서:
- :Lazy sync — 플러그인 업데이트
- :Mason — LSP 서버 관리
- :TSUpdate — treesitter 파서 업데이트
Neovim 자체 업데이트:
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage
chmod +x nvim-linux-x86_64.appimage
sudo mv nvim-linux-x86_64.appimage /usr/local/bin/nvim