포스트

Vim Folding — 접기·펼치기 키맵과 foldmethod

긴 파일을 구조 단위로 접고 펼치는 vim fold 기본 키와 fold 방식 옵션 정리

Vim Folding — 접기·펼치기 키맵과 foldmethod

Fold는 함수·블록·indent 등 코드 구조 단위로 영역을 접어 숨기는 기능. 긴 파일을 훑을 때 클래스/함수 헤더만 보는 식으로 활용한다.

키맵

동작
zo커서 위치 fold 펼치기
zc커서 위치 fold 접기
za토글
zR전부 펼치기
zM전부 접기
zr한 단계 펼치기
zm한 단계 접기

foldmethod — 접는 기준

1
2
3
4
:set foldmethod=indent     " 들여쓰기 기준
:set foldmethod=syntax     " 구문 트리 기준 (filetype에 따라)
:set foldmethod=marker     " } 마커 기준
:set foldmethod=manual     " 수동 (zf로 영역 지정)

코드 작업 시 가장 자주 쓰는 건 syntax. Neovim에서 treesitter를 켰다면 foldmethod=expr + foldexpr=nvim_treesitter#foldexpr() 조합도 흔하다.

첫 진입 시 접지 않기

기본은 파일을 열자마자 fold가 접혀 있어 거슬릴 수 있다. 다음을 더하면 처음엔 펼친 채로 시작.

1
:set foldlevelstart=99
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.