본문 바로가기

코딩/Vim

Vim - Fold (폴드)

반응형

폴드란 코드줄을 한 줄로 접거나/펼칠때 쓰는 것이다, 대략 아래 사진과 같은 기능이다.

 

폴드 만들기

폴드 삭제

폴드 열기

폴드 닫기

폴드 열기/닫기 스위치

폴드로 커서 이동

Set Options

폴드 만들기

선택된 줄 폴드 만들기

동작
zf (선택한 줄) 선택한 줄 폴드 만들고 폴드 닫기

 

 

현재 줄부터 윗줄까지 폴드 만들기

동작
zf[숫자]k
:,-[숫자]fo
현재 줄과 현재 줄 위 [숫자]개 줄 폴드 만들고 폴드 닫기

 

 

현재 줄부터 아랫줄까지 폴드 만들기

동작
[숫자]zF 현재 줄과 현재 줄 아래 [숫자] - 1개 줄 폴드 만들고 폴드 닫기
zf[숫자]j
:,+[숫자]fo
현재 줄과 현재 줄 아래 [숫자]개 줄 폴드 만들고 폴드 닫기

 

 

다수 줄 폴드 만들기

동작
zfgg
:1,fo
파일 첫 줄부터 현재 줄까지 폴드 만들고 폴드 닫기
zfG
:,$fo
현재 줄부터 파일 마지막 줄까지 폴드 만들고 폴드 닫기
:[시작 줄 숫자],[끝 줄 숫자]fo [시작 줄 숫자]번째 줄부터 [끝 줄 숫자]번째 줄까지 폴드 만들고 폴드 닫기
zf/[단어] [단어]가 줄의 첫 열에서부터 시작하는 경우
- 현재 줄부터 현재 줄 아래, [단어] 포함한 줄의 윗 줄까지 폴드 만들고 폴드 닫기


예시: 아래와 같은 줄에서 zf/aaa

1111 (현재 줄)
1111
aaa1

결과: 굵어진 줄은 폴드에 포함된 줄을 의미

1111 (현재 줄)
1111
aaa1



[단어]가 줄의 첫 열에서부터 시작하지 않는 경우
- 현재 줄부터 현재 줄 아래, [단어]를 포함한 줄까지 폴드 만들고 폴드 닫기


예시: 아래와 같은 줄에서 zf/aaa

1111 (현재 줄)
1111
1aaa

결과: 굵어진 줄은 폴드에 포함된 줄을 의미

1111 (현재 줄)
1111
1aaa
zf?[단어] 커서가 현재 줄의 첫 열에 있는 경우
 - 현재 줄 위에 [단어] 포함한 줄부터 현재 줄 윗줄까지 폴드 만들고 폴드 닫기


예시: 아래와 같은 줄에서 zf?aaa

aaa1
1111
1111 (현재 줄)

결과: 굵어진 줄은 폴드에 포험된 줄을 의미

aaa1
1111
1111 (현재 줄)



커서가 현재 줄 첫 열에 있지 않는 경우
- 현재 줄 위에 [단어] 포함한 줄부터 현재 줄까지 폴드 만들고 폴드 닫기


예시: 아래와 같은 줄에서 zf?aaa

1aaa
1111
1111 (현재 줄)

결과: 굵어진 줄은 폴드에 포함된 줄을 의미

1aaa
1111
1111 (현재 줄)

폴드 삭제

현재 줄이 속한 폴드 삭제

동작
zd 현재 줄이 속한 폴드 삭제

(삭제한 폴드의 하위 폴드는 삭제 안됨)
zD 현재 줄이 속한 폴드와 하위 모든 폴드 삭제

 

 

모든 폴드 삭제

동작
zE 현재 창에 존재하는 모든 폴드 삭제

폴드 열기

현재 줄이 속한 폴드 열기

동작
zo
:foldo
:foldopen
현재 줄이 속한 폴드 열기

(하위 폴드는 열기 않음)
zO 현재 줄이 속한 폴드와 하위 폴드 전부 열기

 

 

모든 폴드 열기

동작
zn
zR
모든 폴드 열기
zr (zm의 반대)
:%foldo
모든 폴드의 한 레벨 열기 
:[시작 줄 숫자],[끝 줄 숫자]foldo [시작 줄 숫자]번째 줄부터 [끝 줄 숫자]번째 줄까지, 모든 폴드 한 레벨 열기

폴드 닫기

현재 줄이 속한 폴드 닫기

동작
zc
:foldc
:foldclose
현재 줄이 속한 폴드 닫기

(하위 폴드는 닫지 않음)
zC 현재 줄이 속한 폴드부터 현재 줄이 속한 최상단 폴드까지 닫기

닫기 미포함
- 현재 줄의 하위 폴드
- 현재 줄의 상위 폴드의 형제 폴드

 

 

모든 폴드 닫기

동작
zM
zN (zn으로 열린 폴드만 닫기 가능)
모든 열린 폴드 닫기
zm 모든 폴드 한 레벨 닫기 (zr의 반대)
:[시작 줄 숫자],[끝 줄 숫자]foldc [시작 줄 숫자]부터 [끝 줄 숫자]까지, 모든 폴드의 최상단 폴드만 닫기

폴드 열기/닫기 스위치

폴드 열기/닫기 스위치

동작
za 현재 줄이 속한 폴드가 닫힌 경우
- 현재 줄이 속한 폴드 열기

현재 줄이 속한 폴드가 열린 경우
- 현재 줄이 속한 폴드 닫기
zA 현재 줄이 속한 폴드가 닫힌 경우
- 현재 줄이 속한 폴드부터 하위 폴드까지 열기

현재 줄이 속한 폴드가 열린 경우
- 현재 줄이 속한 폴드부터 최상단 폴드까지 닫기

폴드로 커서 이동

이전 & 다음 폴드로 커서 이동

동작
zk 이전 폴드의 마지막 줄로 이동
zj 다음 폴드의 첫 줄로 이동

 

 

현재 줄이 속한 폴드의 첫 & 마지막 줄로 커서 이동

동작
[z 현재 줄이 속한 폴드의 첫 줄로 이동
]z 현재 줄이 속한 폴드의 마지막 줄로 이동

Set Options

폴드 활성화/비활성화

동작
:set foldenable 폴드 활성화
:set nofoldenable 폴드 비활성화

 

 

폴드 방법 설정

동작
:set fdm
:set foldmethod
현재 폴드 방식 보기
:set fdm=[옵션]
:set foldmethod=[옵션]
현재 폴드 방식을 [옵션]으로 변경

[옵션]
manual - 기본 값 (유저가 zf같은 키로 폴드 만들기)
marker - 기존 폴드 주위에 /*{{{*/와  /*}}}*/ 폴드 태그 삽입하고 태그 속 줄을 대상으로 폴드 만들기
indent - 들여쓰기에 따라 폴드 만들기
syntax - 문법에 따라 폴드 만들기

 

 

폴드 생성 시, 폴드 마크 문자 삽입

동작
:set foldmarker=[시작 태그],[끝 태그] foldmethod 값이 marker일 경우

시작과 끝 태그를 /*[시작 태그]*/와 /*[끝 태그]*/로 변경

 

 

폴드 최대 중첩 갯수 설정

동작
:set foldnestmax=[숫자] 폴드 최대 [숫자]개까지 중첩 가능
반응형