如何使用带Vim ag的正则表达式(银色搜索)

时间:2014-11-20 23:02:41

标签: vim

我在ag.vim插件中使用Silver Search。有没有人知道如何使用正则表达式与:ag命令进行搜索?

2 个答案:

答案 0 :(得分:5)

Ag.vim需要一些额外的转义(除了ag所需的内容)因为vim,如https://github.com/rking/ag.vim#gotchas中所述。

例如,如果您有正则表达式,则需要在Ag.vim中键入,如下所示:

  • \.位于Ag.vim \\.
  • \(在Ag.vim中停留\(
  • []位于Ag.vim \[\]
  • \s在Ag.vim中成为\\\s
  • |(选项分隔符,例如(a|b|c)中的选项分隔符位于Ag.vim \|
  • \.\s+async[^h]位于Ag.vim \\.\\\s\+async\[^h\]

因此,要搜索\.\s+async[^h],请键入:Ag \\.\\\s\+async\[^h\]。这是一个有点膨胀的反斜杠,但目前我知道获得结果的唯一方法。

我希望能让你知道如何逃避你的正则表达式。对我来说,这需要一些逃避的实验。

答案 1 :(得分:0)

ag使用与grep相同的语法:

$ ag .epart.    finds 'departure' and 'departed'
$ ag ^The       finds all lines starting with 'The'
$ ag s{2}       finds 'Odessa'

我不熟悉那个ag.vim插件,但我想以下内容应该会找到以Oz结尾的所有行:

:Ag Oz$

有关血腥语法的详细信息,请参阅$man grep