LINUX

vim TIP

OJR 2009. 6. 30. 14:49
source folding
- fold 사용법
(1) create fold
zf{motion} or {visual}zf, :{range}fo[ld]
visual line 이나 혹은 motion (% 과 같은 괄호내 범위지정), 등을 이용하여 지정합니다. zf% 와 같은 모션이나 Shift-v 로 visual line을 지정한뒤에 zf, 혹은 :40,.fo[ld] 처럼 40라인부터 현재 커서까지 fold 해라. 라고 콜론모드 명령를 사용할 수 도 있습니다.
(2) open/close fold
zo : 현재 커서의 fold를 열어줍니다(소스를 볼 수 있다는 의미).(zO는 모두 열기)
     (그냥 폴드된 위치를 커서로 지나가도 열리기는 합니다)
zc : 열려진 fold 를 다시 닫습니다. (zC 는 recursive 하게 하위의 모든 fold를 같이 닫습니다)
za : 폴드된 소스를 open/close를 스위치합니다. (즉 현재 close 상태면 open하고 open상태면 close 합니다)
   -> zA : nested 된 하위 폴드가 더 있다면 모두 같이 switch 해줍니다.
(3) eliminate fold
zd : 현재 위치의 폴드를 제거합니다.(zD 는 recursive 하게 하위의 모든 fold를 같이 제거합니다)
(4) update fold
zx : 매뉴얼로 고친 폴드(직접 폴드 마크를 넣은 경우)를 업데이트 합니다.: zX는 전체업데이트
(5) open all, close all
zr : 현재 소스내 모든 fold를 검색하여 한 레벨만큼 열어줍니다. 따라서 현재 레벨에서 한꺼풀만 열어주게 됩니다.
     (zR은 모든 레벨의 폴드를 열어줍니다. 따라서 존재하는 모든 소스의 fold가 열립니다.)
zm : 현재 소스내 모든 fold를 검색하여 한 레벨만큼 닫아줍니다. 따라서 현재 레벨에서 한꺼풀만 닫아주게 됩니다.
     (zM은 모든 레벨의 폴드를 닫아줍니다. 따라서 존재하는 모든 소스의 fold가 닫힙니다.)

- fold 저장
함수가 길어지고, 루틴이 길어지면 폴딩 기능을 이용해서 소스를 보는 것이 편리하죠. 그런데 이 폴딩이 저장하고 다시 열면 접었던 것들이 다 날아가서 실제로 사용하기에 불편하지요. 이를 저장해놓고 매번 열때마다 사용할려면 다음과 같이 지정합니다.

:set fdm=marker

이는 fold marker 를 지정하겠다는 것입니다. 이렇게 하면 소스내에 /*{{{*/ .... /*}}}*/ 로 감싸지는 부분이 생깁니다. 이 부분은 저장되어 매번 열때마다 사용할 수 있게 됩니다. (개인이 직접 소스를 편집해서 위의 fold marker를 넣으셔도 됩니다. 그런데 이 경우는 반영하기 위해서는 zx(or zX)를 사용해서 업데이트 해야겠죠?


출처: http://blog.naver.com/joinparky/80040157542


추가:
http://blog.naver.com/dbader?Redirect=Log&logNo=70012185863

반응형

'LINUX' 카테고리의 다른 글

비어있는 폴더 삭제하기  (0) 2009.10.09
vim 두번 줄바꿈 치환 하기  (0) 2009.08.06
fileencoding 변경  (0) 2009.06.30
아파치 httpd.conf 세팅  (0) 2009.06.19
리눅스 screen  (0) 2009.06.03