我最近学会了如何让 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
答案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
(也是正则表达式,但与每个文件的第一行匹配)。