Silver Searcher - как игнорировать файл

Согласно документам, это должно быть

--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

и ни один из них не работает.

Если я использую то, что предлагается здесь, то ag вообще не примет это

Я попытался обойти это, переименовав его в temp.tags и используя шаблон *.tags, чтобы попытаться игнорировать его, но он по-прежнему не работает.

Любые идеи?


person Jacob Wang    schedule 10.04.2014    source источник


Ответы (10)


Поместите список файлов, которые нужно исключить, в .agignore.

Примечание: как упомянул @ DenilsonSáMaia, .agignore будет устаревшим в пользу .ignore geoff.greer.fm/ 26.09.2016 / игнорировать

person Mukesh Soni    schedule 20.04.2015
comment
Отличный ответ. Для получения дополнительных сведений о .agignore см .: github.com/ggreer/the_silver_searcher/wiki/Advanced- Использование - person Janos; 14.06.2016
comment
.agignore будет устаревшим в пользу .ignore: geoff.greer.fm/2016/09/ 26 / игнорировать - person Denilson Sá Maia; 16.01.2017
comment
.agignore работает с ag версии 2.0.0, проверьте исходный текст - person michalzuber; 28.08.2017
comment
вы также можете добавить файл .ignore глобально как ~ / .ignore (а не на корневой уровень проекта). В качестве альтернативы вы можете добавить файл или папку, которые нужно исключить, в .gitignore. - person arcseldon; 02.06.2019
comment
.agignore - правильный файл. Это 2021 год, и он еще не устарел ... скорее всего, никогда не станет. .ignore в любом случае было бы ужасным именем, поскольку вы действительно не знали бы, какому оно принадлежит, и была бы вероятность того, что его использует другое приложение. - person ffxsam; 16.03.2021
comment
Я просто пробовал использовать .agignore (с ag 2.2.0), и это не сработало; переименование его в .ignore сработало. - person anol; 30.06.2021

Добавьте несколько --ignore, по крайней мере, это сработает для меня:

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

Если вы не помещаете кавычки, он интерпретируется как каталог, если вы помещаете кавычки как ШАБЛОН

person NexusStar    schedule 17.11.2016

После некоторого исследования выяснилось, что это известная проблема, задокументированная здесь. Если вы выполните поиск --all-text (-t), он переопределит --ignore, поскольку ищет все тексты. Эта проблема присутствует и для --unrestricted.

person Jacob Wang    schedule 10.04.2014
comment
Я нашел этот ответ в сочетании с ответом от @ ArturMałecki, объясняющего, почему --ignore не сработал для меня. - person ken hicks; 12.01.2021

Я обнаружил, что --ignore не принимает регулярное выражение.

Это должно помочь:

ag --ignore="*_test.rb" "SomeAwesomeClass"
person Artur Małecki    schedule 27.11.2017

Начиная с версии 2.2.0 (скорее всего, и более ранних версий; я просто перехожу с той версии, которая у меня есть), все эти ответы, похоже, не работают. Что сработало для меня, так это:

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

Обратите внимание на = после параметра ignore.

person youngrrrr    schedule 27.07.2019

Для меня работает следующее (в ag версии 0.18.1):

ag --ignore TAGS;*.pdf;*.json "search_term"
person jco    schedule 27.08.2015

Вы также можете создавать файлы .ignore, чтобы игнорировать вещи, которые находятся в вашем исходном репозитории. .ignore использует те же шаблоны, что и .gitignore и .hgignore. Использование .ignore может значительно повысить скорость поиска. .

Если вам нужен глобальный файл .ignore, подумайте о добавлении этого псевдонима:

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

в ваш ~/.bash_profile (или аналогичный) файл

person lfender6445    schedule 08.08.2019

Я попробовал опубликованную вами ссылку (используя глобус вместо регулярного выражения), но удалил знак '=', и это сработало.

person fferen    schedule 02.07.2014
comment
Я не могу воспроизвести, чтобы шары работали с этим. Не могли бы вы опубликовать реальную линию, которая сработала для вас? - person cchamberlain; 23.07.2015

Я просто поместил файл .agignore в корневую папку моего пользователя, и он работает.

По умолчанию ag игнорирует файлы, соответствующие шаблонам в .gitignore, .hgignore или .agignore. Эти файлы могут находиться в любом месте просматриваемых каталогов. Ag также игнорирует файлы, соответствующие свойству svn: ignore в репозиториях Subversion. Наконец, ag ищет в $ HOME / .agignore шаблоны игнорирования. Двоичные файлы также по умолчанию игнорируются.

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

person Lajos    schedule 15.03.2021

Вы пробовали использовать одинарные кавычки? Я знаю, что я определенно был озадачен использованием двойных кавычек и без кавычек только для того, чтобы обнаружить, что одинарные кавычки работают.

ag -Qt --ignore '*tags'
person Bluecakes    schedule 10.04.2014
comment
почему ваши одинарные кавычки выглядят как обратные кавычки? - person cchamberlain; 23.07.2015