#TIL #vim 중괄호(braces)를 넘어 다니자
1 { 2 { 3 { |4 } A } B }
[{ 입력
1 { 2 { 3 |{ 4 } A } B }
[{ 입력
1 { 2 |{ 3 { 4 } A } B }
대괄호(square brackets)는 방향이다. 즉 [{ 키를 입력하면 이전 { 문자로 이동한다.
1 { 2 |{ 3 { 4 } A } B }
그럼 여기서 ]} 키를 입력하면 어떻게 되나?
1 { 2 { 3 { 4 |} A } B }
여기가 아니라
1 { 2 { 3 { 4 } A |} B }
여기로 입력한다. 왜냐면 unmatched 문자를 찾아서 이동하기 때문이다. {} 쌍은 무시한다.
이게 {} 문자를 사용하는 프로그래밍 언어에서는 상위 level brace로 이동하거나 현재 level의 닫거나 여는 brace로 이동할 수 있다. 하위 level은 안 된다. 왜냐면 unmatched 문자를 찾기 때문에 {} 쌍은 무시한다.
if (a == 0)
{
    if (b == 0)
    {
        if (c == 0)
        {
            |call_body();
        }
    }
}
[{ 입력
if (a == 0)
{
    if (b == 0)
    {
        if (c == 0)
        |{
            call_body();
        }
    }
}
[{ 입력
if (a == 0)
{
    if (b == 0)
    |{
        if (c == 0)
        {
            call_body();
        }
    }
}
]} 입력
if (a == 0)
{
    if (b == 0)
    {
        if (c == 0)
        {
            call_body();
        }
    |}
}