如何在 git log 中(使用 less)搜索单词边界

Posted

技术标签:

【中文标题】如何在 git log 中(使用 less)搜索单词边界【英文标题】:How to search git log (using less) for word boundaries 【发布时间】: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

【问题讨论】:

【参考方案1】:

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

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

您的选择包括:-

    检查(并可能更新)您的libc 版本。 (我的是libc6-2.19) 使用更新的库或配置为使用其内部正则表达式处理程序构建您自己的 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

以上是关于如何在 git log 中(使用 less)搜索单词边界的主要内容,如果未能解决你的问题,请参考以下文章

在 git bash 如何增加更少的屏幕宽度?

如何在 `less` 中避免`Pattern not found` 消息和屏幕重绘(作为 Git 寻呼机)

如何在'less'(GNU)中显示行号

如何使用 less 使用模式修饰符进行不区分大小写的搜索?

iTerm2 和 Zsh 中 git 和 less 的行为 - 不要使用单独的视图/备用屏幕

python 这个脚本在git log中搜索你所在的当前目录,并在“base commit”上启动一个交互式rebase,这是s