这打开手册页并在单个命令中搜索字符串问题一半涵盖了我想做的事情:
我想知道是否有一种方法可以打开手册页到特定的搜索字符串,而不是执行 man chmod 然后 /a+x 跳转到 chmod 手册页中提到 a+x 的第一部分,类似如何在 vi(m) 中执行 vi +string filename.txt。
选择的答案是
man foobar | less +/searched_string
然而,当我尝试
man tmux | less +/^format
发射次数减少但回归
未找到模式(按 RETURN)
为什么找不到模式?
操作系统 - Ubuntu 15.10
% less --version
less 458 (GNU regular expressions)
Copyright (C) 1984-2012 Mark Nudelman
答案1
使用环境变量LESS
,覆盖您正在运行的单个命令。
也可以看看:
LESS='+/LESS[[:space:]]*Options' man less
LESS='+/\+cmd' man less
LESS='+/optional variable assignments' man bash
LESS=+/SIMPLE\ COMMAND\ EXPANSION man bash
不久前我还在元帖子中更广泛地讨论了这个问题:
创建搜索模式时要记住一件事:如果您从长段落的中间选择几个连续的单词,则在查看该手册页时它们可能不会位于同一行不同大小的终端。例如,以下内容适用于全屏终端(在我的监视器),但在 80 列终端上不行,因为单词会跨行分割:
LESS=+/allowing' a shell script' man bash
由于man
处理字间距的方式,以下内容在终端上也是不可靠的:
LESS=+/"The latest version" man bash
以下两个命令将到达相同的位置,但更便携:
LESS=+/^INVOCATION man bash
LESS=+/^BUG man bash
答案2
问题是,当启动 less 并将搜索词作为选项传递时,搜索将区分大小写。
因此,解决方案是使用使用相同大小写的搜索模式。例如这些工作
man tmux | less +/^FORMAT
更好 - 防止外壳膨胀
man tmux | less '+/^FORMAT'
或者替代地
man tmux | less -p '^FORMAT'
背景
每当我使用 less/man 搜索时,搜索都是不区分大小写的,因此我在调用时传递搜索参数时期望相同。
看来这是因为,Ubuntu 使用的 man 版本,打开的-i
搜索不区分大小写的选项较少。
因此,当在没有此选项的情况下调用 less 时,您会得到 less 的默认行为,并且 less 的搜索突然变得区分大小写。