2009-11-22 4 views
41

Pour rechercher et remplacer toutes les occurrences d'un mot dans vim, j'utiliseRechercher et remplacer des mots entiers dans vim

%s/word/newword/g 

Comment puis-je changer cela pour qu'il ne trouve que des cas de « mot » qui sont des mots entiers ?

+0

double possible [Recherche mot dans vim?] (Http: //stackoverflow.com/questions/458915/searching-word-in-vim) –

Répondre

80

Vous pouvez utiliser \< pour correspondre au début d'un mot et \> pour correspondre à la fin:

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

Cela fonctionne. Est-ce une syntaxe regex, ou est-ce que cela ne fonctionne que dans vim? – neuromancer

+6

Il s'agit d'une syntaxe d'expression rationnelle spécifique à Vim. Perl (PCRE) utilise par exemple \ b ... \ b à la place. –

+1

Dommage que Vim ne supporte pas \ b ... \ b –

11

Pour remplacer sensible à la casse .. vous pouvez utiliser "\ C"

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

Il ne remplace que "mot" par mot nouveau laissant d'autres comme Word, WORD ... non remplacé.

+0

Pourquoi est-ce que \ C est requis, quand il peut être simplement fait en utilisant, :% s/\ /newword/g. L'utilisation de \ C –

+0

\ C ne serait nécessaire que si nous voulons une recherche sensible à la casse. –