[vi] Folding

Linux 2011. 2. 8. 17:40
vi를 가지고 소스 코드를 작성하다 보면 너무 길어서 보기가 힘들 때가 있다.
이럴 때 소스 코드를 접어, 접힌 부분의 개요만을 볼 수 있게 끔하는 기능이 folding 기능이다.

여기서 소스 코드를 접는다(Folding)는 것은
접힌 부분은 그대로 두면서, vi 상에서 그 접힌 부분을 간략하게 표시되게 끔 하는 기능이다.
즉, vi에서는 접었다 펼 수 있지만, 다른 에디터에서는 소스 코드를 보는데 아무런 영향을 미치지 않는다.

이 기능을 쓰기 위해서는 일단 .vimrc에서 아래 두 parameter를 설정 해주어야만 한다.

set foldmethod=marker
set foldmarker={{{,}}}

위의 foldmethod=marker는 marker를 통해서 소스 코드를 접었다 폈다 하겠다는 의미이고,
아래의 foldmarker는 접고 필 구간을 설정해주기위한 marker를 의미한다.
즉, 위와 같이 설정해 준다면,
소스 코드의 {{{가 있는 줄부터, }}}가 있는 줄 까지는 소스 코드를 접고 펼 수 있게 된다.

그럼 이제 실제 코드에서 folding 기능을 사용하는 예를 살펴보도록 하자
만약

always @(*)
begin
statements...
end

mem memory {
wirings...
};
always @(*)
begin
statements...
end

이런 소스 코드에서 mem 부분이 너무 길어 이를 간략하게 접고 싶다 할 때,

always @(*)

begin
statements...
end

//{{{ instance: mem
mem memory {
wirings...
};
//}}}
 
always @(*)
begin
statements...
end

이렇게 해주면 된다.
여기에서 주의할 점이 있는데 
marker로 지정해준 {{{, }}} 이것이 기존의 소스 코드에 영향을 미치면 안되므로
앞에 주석 처리를 해준 다음 {{{. }}} marker를 사용
해야 한다.
또한 marker 중 folding 범위의 시작을 알리는 marker 뒤에 comment를 넣으면
접혔을 때 그 comment를 확인할 수 있다.

이렇게 folding을 할 부분을 marker를 통해 정한 다음
{{{와 }}} 사이에서 vi command mode에서 zc를 치면

always @(*)
begin

statements...
end

+--- 30 lines: instance: mem ----------------------------
 
always @(*)
begin
statements...
end

파란색 부분과 같이 접히고,
접힌 부분에서 방향키를 누르면 접힌 부분이 펴지면서 그 내용을 볼 수 있게 된다.

'Linux' 카테고리의 다른 글

[Perl] Bin to Hex Converter  (0) 2011.02.14
[Perl] Hex to Bin Converter  (0) 2011.02.14
[Perl] File I/O  (0) 2011.01.05
[C shell] C shell에서 각 명령어의 return value 사용 ($status)  (0) 2010.11.25
[Tcl/Tk] Tcl/Tk 문법  (0) 2010.10.20
Posted by sunshowers
,