jjzjj

windows - Ack 有时不会显示行号并失去着色

coder 2024-06-10 原文

奇怪的 ack (betterthangrep.com) - 有时我会得到行号,有时不会。

在第一个例子中,我在一些 Python 文件中寻找一个简单的短语。 它工作正常,并显示行号 233。 在第二个示例中,我查找第一列以“5”结尾的所有行。

D:\DSWProj\2012L\src> perl D:\ack-standalone.pl  "return True"  *.py
Volume5.py
233:    return True


D:\DSWProj\2012L\data\R123> perl D:\ack-standalone.pl  "5 "  NeedMoreCoffee_n5_*.data
Volume5 FooData  coffee_n5  2013-01-29 10:14
 397125 0 0 1 0
 397135 0 0 1 0

这两行正是文件中标题行之后的前两行。

为什么第二个例子中没有行号?也没有打印文件名,也没有着色。 Python 示例确实对输出进行了着色——行号为黄色,文件名为绿色。 (令人惊讶的是,自从我上次询问以来,有人告诉我 Windows 命令行 shell 根本无法给任何东西着色。)这是 ack 中的错误,还是 Windows 的怪癖?除了明显地在不同文件中搜索不同内容之外,我是否在这两种情况之间无意中做了一些不同的事情?

在 Windows 7 64 位上运行,使用两天前(2013 年 1 月 28 日)下载的 Strawberry Perl 5.16.2, 和 ack 独立脚本,版本 1.96,也是两天前下载的。

最佳答案

我相信 ack 神奇地*知道 *.py 文件是 Python 源代码,并且会显示源代码文件的行号和颜色,但不会显示普通的旧数据像 *.data 这样的文件。这被认为是一个功能,而不是一个错误。

如果您想要一个可预测、可组合的 grep 替代品,请尝试 grep。 ;)

* – 当然,这并不是真正的魔法;它可以在您的 .ackrc 文件中配置。运行 ack --help-types 获取更多信息。

编辑:我错了!不是因为.py.data的区别;这是因为 ack pattern f1ack pattern f1 f2 ... 之间的区别。在后一种情况下,ack 将打印 哪些 文件 f1 f2 ... 包含匹配项;在前一种情况下(单个文件),ack 的行为更像 grep

要欺骗 ack 为单个文件生成行号,请在该行的末尾添加一个假文件。对于 Cygwin,您可能会这样做

perl D:\ack-standalone.pl  "5 "  NeedMoreCoffee_n5_*.data /dev/null

对于 Windows,也许这仍然有效:

perl D:\ack-standalone.pl  "5 "  NeedMoreCoffee_n5_*.data NUL

(字面意思是字母 N U L,这是 Windows 拼写 /dev/null 的方式;另请参阅 CON、LPT1 等)。

关于windows - Ack 有时不会显示行号并失去着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637832/

有关windows - Ack 有时不会显示行号并失去着色的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  5. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  6. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  7. ruby-on-rails - link_to 不显示任何 rails - 2

    我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article

  8. ruby-on-rails - 如何在 Rails View 上显示错误消息? - 2

    我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c

  9. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  10. ruby-on-rails - 复数 for fields_for has_many 关联未显示在 View 中 - 2

    目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi

随机推荐