开发者社区 问答 正文

Linux中,使用man后,其搜索效率较低,应当如何解决?

描述问题
man指: 默认使用less作为PAGER的自带man

搜索效率较低指:

支持简单搜索, 每次匹配结果太多
不支持精确搜索(如引入正则,ERE or Perl风格,最好引入Perl风格 )
没有不同颜色的高亮(这一点我觉得较为重要)
man命令是使用极其频繁的命令之一,搜索功能又是它很重要的功能,但是我觉得这个功能很简陋啊

难道是这个问题不重要or已经得到解决(但是没有搜索到解决方案)?

上下文环境
Linux自带man命令(使用的PAGER为less)
重现
相关代码
报错信息
相关截图
已经尝试哪些方法仍然没有解决(附上相关链接)
搜索了:

less使用哪一种正则,未果
man more efficient
linux man use perl regex
问题简化

展开
收起
a123456678 2016-06-28 14:48:52 2533 分享 版权
1 条回答
写回答
取消 提交回答
  • 简单地说, 正则表达式有多个流派, 其中主要有pcre(兼容perl的正则)和POSIX规范的bre(基础正则), ere(扩展正则).

    自己参考这篇Linux/Unix工具与正则表达式的POSIX规范, 虽然并没有提及less, 但基本可以确定是posix风格的, 因为它是GNU工具的一部分.

    大部分出生在perl后的通用编程语言的正则表达式都借鉴了perl的正则模块, 它们基本上都是pcre. 但有的语言同时支持posix, 如ruby. 对于那么比较古老的编辑器, 如果支持正则, 基本也是pcre, 如vim的正则是bre基础上自己实现了一部分内容.

    虽然这样说, 但在less上试了很多, 真的很沮丧. 它的正则真的非常奇怪.

    唯一能给出的建立就是, 如果搜索单词, 则使用 word 来匹配, 两端加空格. 以及-N开启行号显示, 以及&pattern搜索可以只显示匹配的行.

    man基于less, less基于more和vi. 对于vimer来说, vi太古老了.

    2019-07-17 19:48:19
    赞同 展开评论