2009-11-22 9 views
41

Um alle Instanzen eines Wortes in vim zu finden und zu ersetzen, verwende ichSuchen und Ersetzen ganze Wörter in vim

%s/word/newword/g 

Wie kann ich das ändern, so dass es nur Instanzen von „Wort“ findet, die ganze Wörter ?

+0

möglich Duplikat [Searching Wort in vim?] (Http: //stackoverflow.com/questions/458915/searching-word-in-vim) –

Antwort

80

Sie können \< verwenden Sie den Anfang eines Wortes entsprechen und \> das Ende entsprechen:

%s/\<word\>/newword/g 
+2

Das funktioniert. Ist das eine Regex-Syntax, oder funktioniert das nur in vim? – neuromancer

+6

Es ist eine Vim-spezifische Regexp-Syntax. Perl (PCRE) verwendet zum Beispiel stattdessen \ b ... \ b. –

+1

Es ist schade, dass Vim nicht unterstützt \ b ... \ b –

11

Für Groß- und ersetzen .. können Sie "\ C"

:%s/\<word\>\C/newword/g 

verwenden Es ersetzt nur "Wort" durch ein neues Wort, wodurch andere wie Word, WORD ... nicht ersetzt werden.

+0

Warum ist \ C erforderlich, wenn es einfach mit durchgeführt werden kann:% s/\ /newword/g. W ¨urden Sie bitte hervorheben, dass die Verwendung von \ C –

+0

\ C nur dann erforderlich ist, wenn die Groß- und Kleinschreibung beachtet werden soll. –

Verwandte Themen