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 ?
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 ?
Sie können \<
verwenden Sie den Anfang eines Wortes entsprechen und \>
das Ende entsprechen:
%s/\<word\>/newword/g
Das funktioniert. Ist das eine Regex-Syntax, oder funktioniert das nur in vim? – neuromancer
Es ist eine Vim-spezifische Regexp-Syntax. Perl (PCRE) verwendet zum Beispiel stattdessen \ b ... \ b. –
Es ist schade, dass Vim nicht unterstützt \ b ... \ b –
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.
Warum ist \ C erforderlich, wenn es einfach mit durchgeführt werden kann:% s/\
\ C nur dann erforderlich ist, wenn die Groß- und Kleinschreibung beachtet werden soll. –
Für PCRE kompatibel Suchen und Ersetzen, um die perldo
oder rubydo
Befehle wie hier beschrieben verwenden kann: http://vim.wikia.com/wiki/Perl_compatible_regular_expressions
Zum Beispiel:
:perldo s/\bword\b/newword/g
möglich Duplikat [Searching Wort in vim?] (Http: //stackoverflow.com/questions/458915/searching-word-in-vim) –