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

chi*_*gsy 15 command-line-interface man

为此,我在 vim 中设置了文件类型。我希望帮助程序是man. 这当然行不通。例如,对于ssh_config的手册页,如果我在一个单词上,比如说ServerAliveCountMax,我会收到一个错误,因为没有手册页ServerAliveCountMax- 它在ssh_config的手册页中。

从命令行,有没有办法跳转到字符串或在里面运行某种类型的命令man?随便怎么样都info可以带我到Miscellaneous的部分screen的信息页面:

info screen Miscellaneous
Run Code Online (Sandbox Code Playgroud)

这可能man吗?即使运行搜索也会服务......


对于 OSX/*BSD with /usr/bin/man,这有效:

man -P 'less -p PATTERN' ssh_config  
Run Code Online (Sandbox Code Playgroud)

Den*_*son 17

从 GNU 的命令行man

man --pager='less -p ^ENVIRONMENT' man
Run Code Online (Sandbox Code Playgroud)

或对于 BSD man

man -P 'less -p ^ENVIRONMENT' man
Run Code Online (Sandbox Code Playgroud)

将跳转到手册页的“环境”标题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[@]}
}
Run Code Online (Sandbox Code Playgroud)

例子:

正常使用:

mans bash
Run Code Online (Sandbox Code Playgroud)

转到“描述”标题:

mans ^DESCRIPTION bash
Run Code Online (Sandbox Code Playgroud)

依次转到每个手册页的“描述”标题(按qEnter转到下一个):

mans ^DESCRIPTION bash ksh zsh
Run Code Online (Sandbox Code Playgroud)

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

mans '^ *Parameter Expansion' bash
Run Code Online (Sandbox Code Playgroud)

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

mans '' bash
Run Code Online (Sandbox Code Playgroud)

您搜索的匹配项不会突出显示。如果您愿意,只需-G从选项中删除less

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


Dor*_*har 6

我使用一个简单的技巧在手册页的各部分之间相对快速地跳转:我点击/^[A-Z]然后我可以按nN来向前和向后跳转。

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