在vim中搜索单词?


145

我可以使用在vim中搜索单词/word。如何只word搜索,不搜索word1word2


Answers:


207

像这样:

/\<word\>

\<表示单词的开头,表示单词\>的结尾,

添加@Roe的注释:
VIM为此提供了快捷方式。如果屏幕上已经有单词,并且想要查找它的其他实例,则可以将光标放在单词上,然后按键'*'在文件中向前'#'搜索或向后搜索。


3
将光标放在一个单词上并按*(向前)或#(向后)是一种快捷方式
falstro,

1
为什么这样做对这样做有益?/ word
jimh,2017年

3
@semja:假设您有一个变量“ data”及其有效指示“ data_valid”。如果我只想搜索“数据”而不是“ data_valid”,那么“ / data”将无法完成任务。我需要告诉vim在哪里停止匹配模式。
内森·菲尔曼

在以下示例中,此操作失败:1word1有关解决方案,请参见stackoverflow.com/a/22148017/2609994
LSchueler

是否有一种vim配置,使其可以搜索准确的单词,而无需用\<\<字符包装搜索字符串?
trueadjustr

77
  1. vim文件名
  2. 按 /
  3. 输入您要搜索的单词
  4. 按Enter

2
有人可以解释为什么这可能会遭到否决吗?为我工作。
Kiee

13
因为OP要求专门搜索"word"。这里基本上发布的解决方案做了搜索%word%,无论是其thiswordisawesomeword5626word
Jguy

9
另外,因为OP明确声明他们知道该/命令。因此,这个答案根本没有帮助。
cmaster-恢复莫妮卡

27

如果您使用的是Ubuntu,请按照以下步骤操作:

  1. /并输入单词进行搜索
  2. 要向前搜索,请按“ SHIFT”键, *
  3. 要向后搜索,请按键,然后按“ SHIFT” #

1
如何突出显示搜索到的单词?
jorge saraiva '16

3
@jorgesaraiva:首先,您可能会通过提出一个新问题而更快得到答案(而不是等您问了三个月后才有人对此评论upon不休)。第二,您可以:set hls在Vim中突出显示搜索结果。要关闭突出显示功能:set nohls
内森·费尔曼

1
仅当这样做的第一个结果/word确切地是word代替时,这才真正起作用word.+
pushkin

这在AWS ubuntu 18.04实例上对我不起作用。如果相关,请使用Windows git-bash SSH到ubuntu服务器。奇怪的。
CodingMatters

21

对于基本搜索:

  • / pattern-向前搜索模式
  • 模式-向后搜索
  • n-重复向前搜索
  • N-向后重复

您可能需要设置一些变量:

  • :set ignorecase-不区分大小写
  • :set smartcase-用例(如果使用了任何大写)
  • :set incsearch-将匹配项显示为搜索

3
这不是OP所要求的。
所有工人都是必不可少的
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.