题 如何跳转到手册页中的特定标题?


示例:ssh_config

我在vim中为此设置了一个文件类型。我想要帮助程序

man

当然,如果我说的话,这不起作用

ServerAliveCountMax

我收到一个错误,因为ServerAliveCountMax没有man pager,它位于ssh_config的联机帮助页面中。

有没有办法从命令行跳转到字符串或在man里面运行某种类型的命令?实际上很像信息:

info screen Miscellaneous

将带我到屏幕信息页面的杂项部分。

这可能与男人有关吗?即使运行搜索也可以...

编辑: 我正在使用OSX 10.6.5。使用默认人(/ usr / bin / man)

编辑:我说一点方言;),所以我得到了正确答案:

man -P 'less -p PATTERN' ssh_config  

它似乎是在OSX / * BSD上的调用。


5
2017-11-28 23:22






答案:


从GNU的命令行 man

man --pager='less -p ^ENVIRONMENT' man

或者对于BSD man

man -P 'less -p ^ENVIRONMENT' man

将跳转到手册页的“ENVIRONMENT”标题 man

这是一个方便的功能:

mans () {    # Bash
    local pages string
    if [[ -n $2 ]]
    then
        pages=(${@:2})
        string="$1"
    else
        pages=$1
    fi
    # GNU man
    man ${2:+--pager="less -p \"$string\" -G"} ${pages[@]}
    # BSD man
    # man ${2:+-P "less -p \"$string\" -G"} ${pages[@]}
}

例子:

正常使用:

mans bash

转到“DESCRIPTION”标题:

mans ^DESCRIPTION bash

连续转到每个手册页的“DESCRIPTION”标题(按 q 和 Enter 去下一个):

mans ^DESCRIPTION bash ksh zsh

转到“参数扩展”子标题(您可以使用正则表达式搜索任何字符串):

mans '^ *Parameter Expansion' bash

搜索您在Less中使用的最新正则表达式:

mans '' bash

您搜索的匹配项不会突出显示。如果你喜欢它,只需删除 -G 从选项到 less

此函数不会尝试处理其他参数和选项 man 支持。


9
2017-11-29 01:18



很有希望,我编辑了我的问题,我看到你使用macports或linux运行,我在蹩脚的BSD样式选项列表中有一个-P选项...试试。 - chiggsy
谢谢,我明白了,但再次感谢! BAH,我再也无法回复你的新答案:( - chiggsy
@Chiggsy:我接受了 -P 工作。如果是这样,我会将其添加到我的答案中。 - Dennis Williamson
为了记录,我赞成你的原始答案。这是完全正确的。你的编辑,我无法upvote。我想虽然...... - chiggsy
@Chiggsy:我应该加上 -P BSD风格的答案以供将来参考? - Dennis Williamson


在男人你可以打字 / 然后是匹配的模式,例如找到您要键入的屏幕手册页的DEFAULT KEY BINDINGS部分

/^DEFAULT KEY BINDINGS

1
2018-03-29 15:10



是。这是事实,但你必须这样做 在 男人去做。我想一步一步从shell中获取。 - chiggsy


我使用一个简单的技巧在手册页的各个部分之间跳得比较快: 我打 /^[A-Z] 然后我可以按 ñ 和 ñ 前进和后退。

搜索正则表达式使用典型手册页的基本结构 - 主要部分用大写字母书写,它们开始一行而没有缩进,因此它们应出现在行的开头。


1
2017-11-28 23:26





/ 在较少的情况下会进行前向搜索,并且 ? 会做反向搜索。按 h 查看完整列表。


0



看看我上面的评论,实际上,我的问题。 - chiggsy