Config 가 사는 곳
클래식 Vim 이 시작 시 ~/.vimrc 읽어. Neovim 은 Vimscript 원하면 ~/.config/nvim/init.vim, Lua 원하면 ~/.config/nvim/init.lua 읽어 (Neovim 권장 — Lua 는 진짜 프로그래밍 언어고 현대 Neovim 생태계의 나머지가 그걸로 작성돼).
Vim 을 "이상한 에디터" 에서 "내 에디터" 로 바꾸는 설정
약 25 줄 config 로 편안하고 현대적인 Vim 을 가질 수 있어. 이 레슨의 나머지는 각 필수 설정이 뭘 하고 왜 켜고 싶은지 walkthrough 야.
라인 번호 — relative 가 비밀
set number 가 현재 라인의 절대 번호 표시. set relativenumber 가 다른 모든 라인의 커서로부터의 거리 표시. 합치면 커서 라인은 절대 번호, 그 외는 도달하려면 칠 count. "7" 표시된 라인까지 삭제? 7dd. 머리 계산 X.
Tab vs space — 영원한 논쟁, 파일별로 해결
대부분 언어에 set expandtab (Tab 키가 스페이스 생성), set tabstop=4 (탭 캐릭터가 4 스페이스 너비로 표시), set shiftwidth=4 (>> 가 4 만큼 indent), set softtabstop=4 (Insert mode 의 Tab 이 4 스페이스처럼 작동) 원해. 일부 언어 (Go, Makefile) 는 hard tab 원해 — autocommand 로 filetype 별 처리.
너랑 안 싸우는 검색
set ignorecase + set smartcase 의미: 소문자 검색은 case-insensitive (/foo 가 Foo, FOO, foo 매치); 대문자 검색은 case-sensitive (/Foo 가 Foo 만 매치). 거의 항상 원하는 거. incsearch (타이핑하며 매치 미리보기) 와 hlsearch (모든 매치 하이라이트) 추가.
삶의 질 묶음
scrolloff=8 이 커서 위/아래 8 라인 보이게 유지 — 커서가 화면 마지막 라인에 안 앉아. signcolumn=yes 가 git/LSP 사인용 컬럼 reserve 해서 사인 나타날 때 텍스트 안 점프. termguicolors 가 true-color 지원 활성. updatetime=250 이 CursorHold 이벤트 (많은 plugin 이 사용) 즉시 느낌. undofile 이 세션 사이 undo 히스토리 보존.
.vimrc 복사 + 붙여넣기. 6 개월 후 깨지고, 왜인지 모르고, Vim 포기. 작게 시작. 부재를 느꼈을 때만 설정 추가. 아래 25 줄 config 가 첫날부터 생산적으로 일하기에 실제로 필요한 거야.