永久添加文件类型以确认

永久添加文件类型以确认

我最近学会了如何让 ack 支持更多文件类型(将以下内容添加到.ackrc):

--type-add
latte=.latte

不幸的是,每次我使用 ack 搜索时都会产生一条信息行,即使是结果为 0 的搜索也是如此。

$ ack --latte dump
ack: --type-add: Type "latte" does not exist, creating with ".latte" ...

有没有办法让这个添加更持久?(即删除此信息行)在我看来,这就像在每次 ack 调用时添加这种新类型。这是我安装 ack 的问题吗?

我在 Mac OS X 10.5.8 上,带有 ack 1.92(在 Perl 5.10.1 下运行)

答案1

在我看来文档你需要的声明--type-set是:

--type-set
latte=.latte

而是--type-add为了,强调我的:

具有指定扩展名的文件被识别为(现有的)类型TYPE。

答案2

嗯...ack基本上是一个 Perl 脚本...很容易编辑:

%mappings = (
    actionscript => [qw( as mxml )],
    ada         => [qw( ada adb ads )],
...
    latte       => [qw( latte )],
...
    yaml        => [qw( yaml yml )],
    xml         => [qw( xml dtd xslt ent )],
);

但是,还有其他解决方案吗?

答案3

.ackrc在您的目录中创建或编辑$HOME并添加--type-add=cpp:ext:inl

这将添加文件扩展ensioninl与现有类型“cpp”匹配。

~/.ackrc

# C++
--type-add=cpp:ext:inl

用法:

ack --cpp Foo

除了ext文件扩展名的匹配类型之外,还有is精确文件名匹配、match正则表达式匹配和firstlinematch(也是正则表达式,但与每个文件的第一行匹配)。

相关内容