vim에서 일치하는 중괄호/괄호를 뒤로 검색하세요.

vim에서 일치하는 중괄호/괄호를 뒤로 검색하세요.

대부분이 알고 있듯이 %온라인 정방향 검색을 사용하여 다음 일치하는 버팀대/괄호/괄호를 찾고 일치하는 파트너로 이동할 수 있습니다.

|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;

온라인에서 거꾸로 검색할 수 있는 유사한 키를 갖고 싶습니다. 예를 들면 다음과 같습니다.

array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;

대부분의 vim 명령에는 뒤로 및 앞으로 기능이 있으므로 다음과 같은 모습이어야 합니다. 파트너가 없나요? 그렇다면 일단 그랬기 때문이다.존재하다짝을 이루는 캐릭터와 동일하게 행동합니까?

답변1

만약 너라면진짜vim일반적으로 일치하는 문자를 역방향으로 검색하려면 다음 특정 명령 중 하나를 사용할 수 있습니다 .

  • [(...(일치하지 않는 이전 (문자로 이동)
  • [{...(일치하지 않는 이전 {문자로 이동)

다음 두 명령에는 일치하는 전달 파트너가 있습니다.

  • ])...(일치하지 않는 다음 문자로 이동 ))
  • ]}...(일치하지 않는 다음 문자로 이동 })

#ifdef다른 유사한 C 주석 명령이 있습니다 .

vim명령을 사용하여 더 많은 정보를 찾을 수 있습니다 :help %.

답변2

% 일치하는 괄호를 찾습니다. 따라서 ( 또는 {에 있으면 앞으로 검색됩니다.

} 또는 )에 있으면 뒤로 검색됩니다.

%에는 방향성이 없으며 일치하는 괄호만 찾습니다.

답변3

방금 해봤습니다 :map ^] ^%%(여기서는 ^]= Ctrl+ v Ctrl+ 를 5비유로 사용합니다 %= Shift+ 5).

주어진 특정 사례에 대해 작동하지만 커서에서 뒤로 검색하지 않기 때문에 항상 줄의 첫 번째 여는 대괄호를 선택하고 일치하는 항목이 없으면 커서를 줄의 시작 부분에 둡니다.


더 나은 해결책이 있습니다. 보기에도 좋지 않고 단순화할 여지가 많을 것입니다. 그러나 의미론은 정확히 맞다고 생각합니다(열린 대괄호가 없으면 커서가 움직이지 않고 다음으로 이동합니다).첫 번째현재 열 앞에 괄호를 엽니다.)

:map ^] ^[:call search("[({[]", "bes", line("."))^M

~을 위한

  • ^]= Ctrl+ v Ctrl+5
  • ^[= Ctrl+v Esc
  • ^M= Ctrl+v Return

관련 정보