1

Java 文件在已知文件类型中列出(使用 ag --list-file-types),但不会在下面的 ag 搜索结果中返回,除非我使用 -t 标志(-a 和 -U 也返回 Java结果中的文件)。这是预期的行为吗?我散布着 .gitignore 文件,但在任何这些文件中都没有忽略这个 Java 文件。

~/src $ ag "ACADEMIC"|grep java
~/src $ ag "ACADEMIC" -t|grep java
{path}/StudentRowMapper.java:23:        Student.setAcademicLevel(rs.getString("ACADEMIC_LEVEL"));
4

1 回答 1

1

不,这不是预期的行为。而且,在我的快速测试中,没有复制。Ag 将搜索 .java 文件。

您无需指定搜索 java 文件。“--java”文件类型标志用于将搜索限制为仅 .java 和 .properties 文件。例如:

~/src $ ag --java "ACADEMIC"

由于您使用 -a 或 -U 获得结果,但并非没有它们,因此您似乎有一个影响 ag 的 .ignore 文件。Ag 忽略文件包括以下模式:.gitignore、.hgignore 或 .ignore。这些文件可以位于搜索目录中的任何位置。另外,请记住,默认情况下会忽略二进制文件。此外,ag 在文件 $HOME/.agignore 中查找忽略模式。

(来自手册页:)如果您想忽略 .gitignore 和 .hgignore,但仍要考虑 .ignore,请使用 -U 标志。-t 选项将搜索所有文本文件;-a 搜索所有文件;和 -u 搜索所有文件,包括隐藏文件。

于 2018-04-11T13:46:27.250 回答