无法在ack中添加类型

Rat*_*lle 8 ack

每次我尝试在ack中添加类型似乎都失败,即在ack中添加一个type(log)

ack --type-set log:ext:log
ack: No regular expression found.
Run Code Online (Sandbox Code Playgroud)

要么

ack --type-add log:ext:log
ack: No regular expression found.
Run Code Online (Sandbox Code Playgroud)

任何人都有这个或它的线索

Ser*_*kov 5

如果您想尝试一种新的类型,请使用以下命令:

ack --type-set proj:ext:csproj --type proj "some search pattern"
Run Code Online (Sandbox Code Playgroud)

这将显示给定类型的搜索结果。

如果要永久保存类型,则必须将以下行添加到您的$HOME/.ackrc

--type-set=proj:ext:csproj
Run Code Online (Sandbox Code Playgroud)

有两件事要注意:

  • 第一个命令不会永久设置配置,只有您来尝试一下。
  • .ackrc文件中的第二行应包含=(等于)而不是空格。

更新(从安迪·莱斯特的答案中得出):

代替--type your_type_name您可以只写快捷方式--your_type_name


And*_*ter 3

像这样做:

ack --type-set=log:ext:log --log searchterm
Run Code Online (Sandbox Code Playgroud)

或者如果您试图忽略日志文件。

ack --type-set=log:ext:log --nolog searchterm
Run Code Online (Sandbox Code Playgroud)

如果您要经常引用此日志格式,那么您需要将该行添加到您的 .ackrc 文件中。每次运行 ack 时都会执行 .ackrc 中的参数。

有关更多信息,请参阅运行“ack --man”后的“定义您自己的类型”。