2013-08-01 3 views
2

저는 지난 며칠 이래 Vim (Windows 7에서 gvim)을 시도하고 있으며 가파른 학습 곡선을 가지고 있지만 매우 재미 있다고 말해야합니다.vim에서 일치하는 동안 문자를 무시하는 방법

저는이 포럼 덕분에 현재 꾸준히 빌드 된 _vimrc 파일을 가지고 있지만 특정 패턴을 찾으려는 기술을 찾고 있습니다.

는 텍스트 파일에 내가 문자열과 같이

한다고 가정이 :

10000000c9abcdef 

과 동일한 파일에 나는 동일한 문자열, 단지 구분이 있습니다과 같이 매 2 개 문자에서를

10:00:00:00:c9:ab:cd:ef 

은 또는, 나는 그런

hostname portname switchname 

뿐만 아니라

과 같은 라인을 가지고 691,363,210
hostname_portname_switchname 

는 어떻게 10:00:00:00:c9:ab:cd:efhostname_portname_switchname와 일치 hostname portname switchname와 정력 일치 10000000c9abcdef을 만들 수 있습니까?

커서는 10:00:00:00:c9:ab:cd:ef 아래에 커서를 놓고 *를 치면 10:00:00:00:c9:ab:cd:ef 만 강조 표시되고 일치하지만 어떻게하면 10000000c9abcdef과 일치시킬 수 있습니까? 또는 hostname_portname_switchnamehostname portname switchname? 방법이 있나요

:

기본적으로, 정력 (세미콜론 등, ::, 쉼표, 콜론 비 단어 문자는 공백, 탭, 것이라고 가정) 비 단어 문자를 무시하고 싶어?

답변

0

너무 쉽게. 커서 아래에서 단어를 추출하고 영숫자가 아닌 모든 문자를 제거하고 각 문자 사이에 [^a-z0-9]*을 삽입 한 다음 해당 문자를 검색하는 함수를 정의하십시오. 그런 다음 #/을 매핑하여 해당 기능을 호출하십시오. 그러나 또한 hos - tnamep; ort - names - witch - name과 일치합니다.

:let @/ = substitute(@/, '\k\@!.', '\\%(\\k\\@!.\\)\\?', 'g') 

또한하려면 :

1

*로 경기를 선택한 후, 당신은 어떤 문자가 아닌 키워드 문자 (\k\@!.) 선택적으로, 비 키워드와 일치하는 (\?)를 변경하는 검색 패턴을 수정할 수 있습니다 이 작업을 수행하려면 _으로 정규 표현식을 사용하거나 :set iskeyword-=_을 사용해야합니다.

관련 문제