【问题标题】:How to search git log (using less) for word boundaries如何在 git log 中(使用 less)搜索单词边界
【发布时间】:2015-02-16 21:56:17
【问题描述】:

对我来说,一个常见的工作流程是输入git log -p,然后使用/ 搜索文本以查找历史记录中的更改。我在 OSX 上,使用 default pager:

$ git config --global core.pager
# no output (meaning default pager, less)

当我搜索时,正则表达式的风格可以工作,例如 a.+b,但是,我似乎无法使 单词边界 工作。我已经尝试了以下所有方法:

<word>
\<word\>
\bword\b
\v<word>

最后一个正在尝试模仿 Vim 的 very magic 开关,我不知道它是否存在于 less 中,但它不会出错。这些搜索都不会返回匹配项。

我试过git config --global color.ui false(默认值auto)关闭颜色,但这似乎没有任何效果。

This question 听起来像\&lt; 应该可以工作吗?但事实并非如此。

我的less版本:

$ less --version
    less 418
    Copyright (C) 1984-2007 Mark Nudelman

【问题讨论】:

    标签: regex git pager


    【解决方案1】:

    根据less 网站常见问题解答 (http://www.greenwoodsoftware.com/less/faq.html),less 将使用libc 提供的操作系统正则表达式,或者如果在构建期间请求,将使用其自己的内置库。

    我的 less 版本是 458。\&lt;\&gt; 运算符完美运行。

    您的选择包括:-

    1. 检查(并可能更新)您的libc 版本。 (我的是libc6-2.19
    2. 使用更新的库或配置为使用其内部正则表达式处理程序构建您自己的 less。

    为了完整起见,Ubuntu 12.04 包括以下版本:

    • less 444
    • libc6-2.15

    并且正则表达式按预期工作。

    【讨论】:

    • 我尝试从源代码构建 less,但是当我使用编译后的二进制文件 (458) 时,\ 似乎仍然无法在 OSX 上运行。我在常见问题解答greenwoodsoftware.com/less/faq.html#searchlt 中找到了这一点,但使用该标志配置它仍然不能使模式工作:(
    • 请问,您运行的是什么版本的 OSX?直到昨天我还在经营小牛队。现在我的 less 不再支持 \.... 即使从 macports 安装也不能解决它。
    • 我正在运行 Yosemite 10.10.3
    猜你喜欢
    • 2016-02-26
    • 2014-12-11
    • 2017-02-13
    • 2012-03-28
    • 1970-01-01
    • 2014-04-17
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多