Как сделать поиск целых слов похожим на "grep -w" в Vim
Как выполнить поиск целых слов, например grep -w
в Vim, который возвращает только строки, в которых искомая строка является целым словом, а не частью большего слова?
grep -w
: выберите только те строки, которые содержат совпадения, которые образуют целые слова.
Можно ли это сделать в Vim?
Ответы
Ответ 1
\<bar\>
соответствует bar
, но ни foobar
, ни barbaz
, ни foobarbaz
.
Используйте это, как это, в подстановке:
:s/\<bar\>/baz
Используйте его так, чтобы отображать все строки, содержащие все слово bar
:
:g/\<bar\>
:h pattern
- хорошее чтение.
Ответ 2
Вы хотите /\<yourword\>
.
Если ваш курсор находится на слове, вы можете нажать *
, и он будет выполнять поиск только слова для слова под курсором.
Ответ 3
Для упрощения команды можно использовать 'very-magic'\v:
/\v<yourword>
Как указано в комментариях, \v
указывает, что все буквенно-цифровые символы имеют особое значение, поэтому нужно вводить только <
и >
, а не избегать их с помощью \<
и \>
.