2009-11-22 2 views
41

Чтобы найти и заменить все экземпляры слова в Vim, я используюНайти и заменить целые слова в Vim

%s/word/newword/g 

Как изменить это так, что он находит только экземпляры «слова», которые целые слова ?

+0

возможно дубликат [Searching слова в Vim?] (HTTP: //stackoverflow.com/questions/458915/searching-word-in-vim) –

ответ

80

Вы можете использовать \<, чтобы соответствовать начало слова и \> соответствовать конец:

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

Это работает. Это синтаксис регулярного выражения, или он работает только в vim? – neuromancer

+6

Это специальный синтаксис регулярного выражения Vim. Perl (PCRE), например, использует \ b ... \ b. –

+1

Жаль, что Vim не поддерживает \ b ... \ b –

11

Для чувствительны к регистру заменить .. Вы можете использовать "\ C"

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

Он заменяет только «слово» новым словом, оставляя других, таких как Word, WORD ... unreplaced.

+0

Почему требуется \ C, когда его можно просто сделать с использованием, :% s/\ /newword/g. Будет ли вы ссылаться на важность использования \ C –

+0

\ C необходимо, только если мы хотим, чтобы поиск с учетом регистра. –

Смежные вопросы