2014-01-08 1 views
2

최근에 많은 RST를 작성 중이며 % 키 스트로크를 악센트 부호 (즉, 역 따옴표) 문자 사이에서 일치 시키길 원합니다. github markdown은 다음에서 backtick을 사용하지 못하게하기 때문에 다음 예제에서 " 문자가 backtick 인 것처럼 가장합니다.matchit을 사용하여 일치하는 백틱 --- 가능합니까?

"The cursor is at the |vertical line" 

다음 % 타격 내가 matchit 플러그인에 대한 b:match_words 설정을 시도

"The cursor is at the vertical line|" 

같이 커서를 이동하지만 도움이되지 않습니다.

감사의 말씀.

답변

4

가 용서 내 호른을 자랑하지만, 나는 matchit 플러그인에 대한 전문가이다.

내장 된 일치 기능을 확장하도록 설계되었지만 matchit은 여러 가지 방법으로이를 확장합니다. 하나의 경우, 단일 문자가 아닌 정규 표현식을 일치시킬 수 있습니다. 당신은 정력의 시작의 단어와 끝 단어 패턴을 사용하여 아주 좋은 결과를 얻을 수 있습니다 : 이것은 확실히 당신이 준 한 줄의 예에서 작동

:let b:match_words='`\<:\>`' 

합니다. 비슷하게 시작 부분이 인 경우은 대개 비 공백 문자가 나오지 않고 닫는 문자 뒤에 공백 문자가 오지 않을 수도 있습니다. (네거티브가 너무 많으면 "This is a markup"은 대개 새 줄을 시작하거나 공백이나 탭을 따라 가며 대개 줄이나 공백 또는 탭의 끝에옵니다.)

:let b:match_words='\S\@<!`:`\S\@!' 

matchit 플러그인은 :help design-documented을 포함하여 vim의 디자인 목표를 달성하려고 시도합니다. 표준 vim 배포에는 matchit.vim (스크립트)와 이 모두 $VIMRUNTIME/macros/에 포함됩니다. 설명서를 읽거나 :help matchit-install의 지침에 따라 :help으로 설명서를 검색하십시오. :help b:match_words에서

, 그것이 말하는,

Tips: Be careful that your initial pattern does not match your final pattern. 

이것은 당신이 퍼센트 키를 쾅 때, 스크립트는 시작 패턴이나 결말에 있는지 알아낼 수 있어야한다, 때문에 무늬. 이 결정을 내리는 데 필요한 유일한 정보는 b:match_words입니다.

+0

이 강력한 플러그인에 대한 모든 작업을 해주셔서 감사합니다! – reckoner

0

matchit 플러그인은 내장 된 % 명령과 유사하게 작동하도록 설계되었으므로 동일한 제한 사항이 있습니다. 특히, :help 'matchpairs'에서 예상대로

Only character pairs are allowed that are different, thus you cannot 
jump between two double quotes. 

따라서,이 작품 (하지만 당신이 원하는하지로) :

:let b:match_words="`:'" 

하지만이 작동하지 않습니다

:let b:match_words="`:`" 
관련 문제