vim에서 괄호 / 일치하는 항목을 뒤로 검색하십시오.


10

대부분의 사람들이 알고 있듯이, %라인에서 앞으로 검색하여 다음 쌍의 버팀대 / 브래킷 / 패런을 찾고 일치하는 파트너로 이동할 수 있습니다.

|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 명령에는 앞뒤가 모두 있으므로 그렇게해야합니다. 파트너가 없습니까? 그렇다면, 그건 일단 때문이다 페어링 문자가 같은 행동 것인가?


그것은 주목해야한다 %파일 다운 쌍을 같은 줄에 브래킷,하지만 더를위한뿐만 아니라 검색합니다. 나는 모든 프로그램 언어에서 특히 루프 등을 좋아합니다.
Bernhard

1
@Bernhard 예.하지만 라인에서 중괄호 중 하나를 찾을 때만 가능합니다.
Kevin

addon 스크립트에 반대하지 않으면 matchit addong% 은 찾고있는 것과 유사한 명령을 제공합니다 .
jw013

바보지만, 당신의 질문은 당신이 파트너가없는 이유를 알고 싶다고 말합니다. "내가 모르는 파트너가 있습니까?" :)
rjewell 2012 년

@rjewell 좋아요, 더 이상 기술적으로 묻지 않도록 분할했습니다.
Kevin

답변:


4

당신이 경우 정말 일반적인 일치하는 문자를 뒤쪽으로 검색하려면, 당신은이 중 하나를 사용할 수 있습니다 vim- 특정 명령 :

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

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

  • ])... (다음으로 일치하지 않는 )캐릭터 로 이동 )
  • ]}... (다음으로 일치하지 않는 }캐릭터 로 이동 )

#ifdefC 주석에 대한 다른 유사한 명령이 있습니다 .

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


나는 이것들을 알고 있는데, 문제는 그들이 일치 하지 않는 쌍을 찾는 것 입니다. 나는 일치하는 쌍 을 찾아야 합니다.
케빈

@ 케빈 : 나는 문서를 오해했습니다 (한숨). 물론 일단 사용 %하면 일치하는 파트너를 찾는 두 가지 방법으로 진행됩니다. 또한 블록 안에 있으면 위의 명령이 적절한 일치를 찾습니다.
Mei

4

%는 대괄호를 찾습니다. 따라서 켜져 있으면 (또는 {앞으로 검색합니다.

} 또는) 인 경우 뒤로 검색합니다.

%는 방향이 아니며 일치하는 대괄호를 찾습니다.


내가 한 쌍의 한쪽 뒤에 있다면 %는 파트너임을 알게 될 것입니다. 내가 줄 끝에 있다면, 줄에서 일찍 쌍을 찾지 못할 것입니다.
케빈

이것이 정답으로 선택되어서는 안됩니까?

2

방금 시도했습니다 :map ^] ^%%( ^]= Ctrl+ v Ctrl+ 5와 유사하게 %= Shift+ + 사용 5).

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


이것은 더 나은 솔루션입니다. 그것은 추악하고 아마도 단순화 할 여지가 많지만 의미가 정확하다고 생각합니다 (열린 파렌이 없으면 커서를 움직이지 않고 현재 열 전에 첫 번째 열린 파린으로 이동합니다 ).

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

...에 대한

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

줄에 중첩되지 않은 두 쌍이있는 경우 이것은 동일하지 않지만 지금까지 가장 좋은 제안입니다. 감사합니다.
케빈

이것은 블록 내에서만 작동합니다. 그렇다면 [(똑같이 작동하며을 요구하지 않습니다 map.
Mei

현재 줄에서 시작 하는 블록이 있어야합니다 . 그래도 더 완벽한 솔루션을 찾았습니다. 편집이 나옵니다.
쓸모없는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.