当我搜索手册页时,搜索区分大小写,但仅限于大写字母。例如,x
将匹配x
而X
仅X
匹配x
。这是man-db
man 的版本,默认在 Fedora 派生系统上使用,也可在其他系统上使用。 man man
说默认寻呼机是less -s
. $LESS
没有在环境中定义,我的$PAGER
只是less
,并且我没有 less 的别名。
这不是我less
单独调用时的行为。
使用时是否强制小写字母x
仅匹配小写字母?x
man
答案1
人在呼唤“少”;人员级别的唯一控制是选择调用 Less 的选项。
Less 的搜索区分大小写由两个选项控制。
- 如果
-I
有效,则搜索不区分大小写:a
或A
可用于匹配a
和A
。 - 如果
-i
有效但 无效-I
,则搜索不区分大小写,但前提是模式不包含大写字母。
如果您-I
为 Less 设置默认选项,那么即使在手册页中,所有搜索也将不区分大小写。
Man-db 通过环境变量将额外的选项传递给分页器LESS
,Less 的解释方式与命令行选项相同。该设置在编译时进行硬编码,并以-i
. (该值"-ix8RmPm%s$PM%s$"
自 Man-db 2.6.2 起;该P…$
部分是提示字符串。)
如果您不希望手册页中的搜索区分大小写,或者希望它们始终不区分大小写,则无法在 man-db 本身中进行配置。您可以为操作环境变量创建别名man
或包装器脚本LESS
,因为 Man-db 将其内容添加到当前值(如果存在):
alias man='LESS="$LESS -I" man'
要关闭该-i
选项,从而使搜索在手册页中默认始终区分大小写:
alias man='LESS="$LESS -+i" man'
LESS
您还可以通过设置环境变量来硬编码不同的值MANLESS
,但如果这样做,则man
只需设置LESS
为 的值MANLESS
,您就会丢失自定义标题行(“手册页foo(42)
”)和其他好东西(特别是,使请务必包含-R
粗体和下划线格式)。
答案2
这就是less
's -i
(命令行开关)“不区分大小写”模式的工作原理(即,它仍然对大写字母敏感)。正如 Gilles 指出的那样,使用它会被编译到 man-db 中。
除了 Gilles 回答 WRT 设置别名+-i
或自定义中指示的方法之外MANLESS
,您还可以在手册页打开后切换严格大小写匹配-i
(这将打开和关闭开关);您将看到一条“大小写在搜索中很重要”消息,现在x
仅匹配x
且X
仅匹配X
。
Man-dbman
有一个-I
开关,但这适用于搜索手册页——例如,默认情况下man BASH
会给你 bash 手册页,反之则man -I BASH
不会。
答案3
“使用时是否强制小写字母x
仅匹配小写字母?”x
man
这是一种方法
man -Tascii manpage |less
我不知道具体细节,但roff
处理正在执行标记,并且寻呼机似乎与未标记的文本相匹配,即使它正在显示标记的文本。
非常混乱,希望nroff
高手能解释一下管道。