在 Vim 中搜索反斜杠字符

13

如何在vim中搜索以\word开头的单词。我知道可以使用查找菜单来完成。是否还有其他快捷键可以实现这个功能?


你能澄清一下问题吗?你是在寻找以“word”开头的单词,还是以“\word”开头的单词,或者只是模式“\word”,无论它是否在单词的开头? - Nick Meyer
问题标题特别提到了反斜杠,所以它不仅仅是“单词”。 - C. K. Young
我已经修复了大部分的错别字,但还有一个问题:应该是“我能”还是“我不能”? - Aaron Digulla
@Aaron:我理解为“可以”,也就是原帖作者目前是这样做的,但想要更好的方法。 - C. K. Young
4个回答

23

在命令模式下尝试使用/\\word

这个方法可行是因为,要转义特殊字符,我们需要在它前面加上反斜杠(\)。由于\本身就是一个特殊字符(而且你实际上想要搜索它),所以我们用反斜杠来转义它。

参考资料


4
您可以使用正则表达式在文档中搜索几乎所有内容。 在正常模式下,输入“/”,然后开始键入正则表达式,然后按Enter键。“\<”将匹配单词的开头,因此,请按如下示例输入:
/\<foo

该模式将匹配字符串“foo”,但仅当它位于单词的开头(在大多数情况下,前面有空格)时。

您可以通过使用反斜杠对其进行转义来搜索反斜杠字符,因此:

/\<\\foo

该模式将在单词开头匹配“\foo”。


将你的答案和我的结合起来,你就会得到:/<\word :-) - C. K. Young
1
\<\\ 并没有特别的意义,因为 \ 不是一个单词字符。 - ephemient

4

虽然与直接相关的不是这个 (/\\word 是正确的解决方案,这里没有改变),但是供您参考:

:h magic

如果您正在寻找具有许多正则表达式特殊含义字符的模式,则可以使用“nomagic”和“very nomagic”模式。

/\V^.$

会搜索字面字符串 ^.$,而不是“恰好一个字符的行”(\v "very magic" 和默认的 \m "magic" 模式) 或者“恰好一个句点的行”(\M "nomagic" 模式)。


3

搜索包含“\”的内容与普通搜索不同,因为“\”是特殊字符,需要进行转义(在其前面加上反斜杠)。

同样地,要搜索包括特殊字符“$”的“$100”:

Press /
Type \$100
Press return

要搜索不包含特殊字符的“abc”:
Press /
Type abc
Press return

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接