2013-01-20 6 views
5

문자열에 특정 문자열이 포함되어있는 경우 단어를 제거하려고합니다.Vim에 문자열이 포함 된 전체 단어를 제거하십시오.

host-a, host-b, host-d 

는 마찬가지로, 나는, 라인별로 라인에서이 작업을하지 적용해야합니다

host-a, host-b, host-c+test, host-d, host-e+test 

내가 가진 결과, +test을 포함 아무것도를 제거하려면 다음은 텍스트의 예입니다 파일의 모든 줄에. 그것은 매크로 내에서 사용될 것입니다.

어떻게하면됩니까?

+0

당신은 또한 쉼표를 제거 하시겠습니까? – fge

+0

예. 내 예와 같이. – Jericon

답변

4

어쩌면 이런가?

:%s/\<[-a-z]\++test\>//gc 

교체하려는 경우 각 일치 사항을 묻습니다. 힌트 : set hlsearch는 당신에게 성냥을 보여줄 것이다.

당신은 또한 다음 쉼표를 제거하려면 :

%s/\(,\s\+\)\?\S\++test\>//gc 
+0

'-'는 단어 경계로 간주되므로, 이것을 끄거나 다른 해결책을 사용해야합니다. –

+0

아, 맞습니다. 결정된. – fge

+0

첫 번째는 작동하지만 두 번째는 작동하지 않습니다. 쉼표가 있으면 제거해야합니다 (즉, 항목이 줄의 처음이 아닐 경우). – Jericon

관련 문제