1 minute read

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();
        }
    |}
}

참고 - various-motions - vimdoc

Tags:

Categories:

Updated: