【问题标题】:Silver Searcher - How to ignore a fileSilver Searcher - 如何忽略文件
【发布时间】:2014-05-24 19:51:12
【问题描述】:

根据文档,应该是

--ignore PATTERN

我有一个包含标签的文件,名为“标签”。我已经尝试了以下,他们每个人仍然通过标签文件搜索..

ag -Qt --ignore ".*tags" "asdf"

ag -Qt --ignore .*tags "asdf"

ag -Qt --ignore "tags" "asdf"

ag -Qt --ignore tags "asdf"

ag -Qt --ignore *tags

它们都不起作用。

如果我使用here 的建议,那么 ag 根本不接受它

我尝试通过将其重命名为 temp.tags 并使用*.tags 模式尝试忽略它来解决它,但它仍然不起作用。

有什么想法吗?

【问题讨论】:

    标签: powershell cmd ag


    【解决方案1】:

    将要排除的文件列表放入.agignore。

    注意:正如@DenilsonSáMaia 所提到的,.agignore 将被.ignore 弃用 geoff.greer.fm/2016/09/26/ignore

    【讨论】:

    【解决方案2】:

    只添加多个--ignore,至少这对我有用:

    ag -Qt --ignore ".*tags" --ignore asdf
    

    如果你不加引号,如果你把引号作为 PATTERN,它会被解释为目录

    【讨论】:

      【解决方案3】:

      经过一些研究,这似乎是记录在here 中的一个已知问题。如果您进行 --all-text (-t) 搜索,它将覆盖 --ignore,因为它正在搜索所有文本。 --unrestricted 也存在此问题。

      【讨论】:

      • 我发现这个答案与@ArturMałecki 的答案相结合,涵盖了为什么 --ignore 对我不起作用。
      【解决方案4】:

      我发现--ignore 不需要正则表达式。

      这应该会有所帮助:

      ag --ignore="*_test.rb" "SomeAwesomeClass"
      

      【讨论】:

      • 这也是我看到的行为。你的评论对我帮助最大。如果字符串具有特殊字符,则似乎将字符串视为 glob 模式,如果没有,则将其视为文字目录。引号似乎根本没有改变它的行为
      【解决方案5】:

      从 v2.2.0 开始(很可能也是早期版本;我只是退出我拥有的版本)所有这些答案似乎都不起作用。对我有用的是:

      ag searchterm --ignore=*.log --ignore=*.txt
      

      注意ignore 选项后面的=。

      【讨论】:

        【解决方案6】:

        对我来说,以下工作(ag 版本 0.18.1):

        ag --ignore TAGS;*.pdf;*.json "search_term"
        

        【讨论】:

          【解决方案7】:

          您还可以创建 .ignore 文件来忽略源存储库中的内容。 .ignore 使用与 .gitignore 和 .hgignore 相同的模式。使用 .ignore 可以显着提高搜索速度。 .

          如果您想要一个全局 .ignore 文件,请考虑添加此别名:

          alias ag='ag --path-to-ignore ~/.ignore' 
          

          到您的~/.bash_profile(或类似)文件

          【讨论】:

          • --path-to-ignore ~/.ignore 对我不起作用。 --ignore=~/.ignore 会。
          【解决方案8】:

          我尝试了您发布的链接(使用 glob 而不是正则表达式),但删除了“=”符号,并且它有效。

          【讨论】:

          • 我无法重现让 glob 使用此功能。你能发布对你有用的实际线路吗?
          【解决方案9】:

          我刚刚将 .agignore 文件放入我的用户根文件夹中,它可以工作。

          默认情况下,ag 将忽略与模式匹配的文件 .gitignore、.hgignore 或 .agignore。这些文件可以在任何地方 正在搜索的目录。 Ag 也会忽略与 svn:ignore 颠覆存储库中的属性。 最后,ag 进去了 $HOME/.agignore 用于忽略模式。 二进制文件被忽略 也是默认的。

          https://manpages.ubuntu.com/manpages/trusty/man1/ag.1.html

          【讨论】:

            【解决方案10】:

            您是否尝试过使用单引号?我知道我肯定被使用双引号和不使用引号所困扰,只是发现单引号有效。

            ag -Qt --ignore '*tags'
            

            【讨论】:

            • 为什么你的单引号看起来像反引号?
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-04-20
            • 1970-01-01
            • 1970-01-01
            • 2020-03-14
            • 1970-01-01
            • 1970-01-01
            • 2015-02-09
            相关资源
            最近更新 更多