gpt4 book ai didi

jquery - 如何让 Ack 忽略 jQuery 文件?

转载 作者:行者123 更新时间:2023-12-03 22:18:46 25 4
gpt4 key购买 nike

我正在使用 Vim + Ack.Vim,并且对如何忽略 Jquery 文件中的点击感到困惑。我已经定义了一个 .ackrc 文件(见下文),但我是在黑暗中刺伤。

--type-add=ruby=.haml,.rake,.rsel,.builder
--type-add=html=.html.erb,.html.haml
--type-add=js=.js.erb
--type-add=css=.sass
--type-set=cucumber=.feature
--type-add=jquery=jquery*.js
--ignore-dir=vendor
--ignore-dir=log
--ignore-dir=tmp
--ignore-dir=doc
--ignore-dir=coverage
--sort-files
--color
--follow
--group
--nojquery

经验丰富的 ack + ack.vim 用户如何解决这个问题?

最佳答案

有趣的问题!我可以想到一些方法:

  1. 修补 ack 以允许使用文件名模式进行过滤(最好:ack 需要此功能)
  2. 修改 ack.vim 以忽略某些文件名模式(不确定如何执行此操作)
  3. 使用包装器脚本/程序过滤 ack 的输出(对 munge ack 的输出来说很脆弱/烦人)
  4. 使用包装脚本/程序过滤给 ack 的输入文件列表(可行)
  5. 修补 ack 以忽略 jQuery 文件(笨拙,但有效)

我让最后一个工作了。 Ack 是用 Perl 编写的,因此很容易阅读和修改。在您的系统上查找 Ack.pm。我使用 Ubuntu 11.10 并安装了 ack-grep 来获取 ack;我的 Ack.pm 位于 /usr/share/perl5/App/Ack.pm。如果您安装了 ack 的独立版本,您将编辑的文件就称为“ack”。查找子例程 is_searchable()。这是我所看到的:

sub is_searchable {
my $filename = shift;

# If these are updated, update the --help message
return if $filename =~ /[.]bak$/;
return if $filename =~ /~$/;
return if $filename =~ m{^#.*#$}o;
return if $filename =~ m{^core\.\d+$}o;
return if $filename =~ m{[._].*\.swp$}o;

return 1;
}

在上面的 return 1; 之后添加另一行:

    return if $filename =~ /^jquery/;

再次回到我的第一个建议(修补 ack 以允许使用文件名模式进行过滤)Andy might take a patch为此。

顺便说一句,您可能已经弄清楚了这一点,但您使用的 --type-add 似乎不是 ack 命令行的有效语法:

--type-add=jquery=jquery*.js

它只需要文件扩展名。希望这有帮助!

关于jquery - 如何让 Ack 忽略 jQuery 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7796846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com