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


9

示例:ssh_config

我为此在vim中设置了文件类型。我希望帮助程序成为

man

当然这是行不通的,如果我一句话说

ServerAliveCountMax

我收到一个错误,因为没有ServerAliveCountMax的手册页,它在ssh_config的手册页中。

有什么方法可以从命令行跳到字符串或在man内部运行某种类型的命令?实际上很像信息:

info screen Miscellaneous

将带我进入屏幕信息页面的其他部分。

男人有可能吗?即使进行搜索也可以...

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

编辑:我说方言;),所以我被引导到正确的答案:

man -P 'less -p PATTERN' ssh_config  

看起来是OSX / * BSD上的调用。

Answers:


11

从GNU的命令行man

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

或对于BSD man

man -P 'less -p ^ENVIRONMENT' man

将跳至的手册页的“环境”标题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”标题(按qEnter转到下一页):

mans ^DESCRIPTION bash ksh zsh

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

mans '^ *Parameter Expansion' bash

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

mans '' bash

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

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


很有希望,我编辑了我的问题,我发现您使用macports或linux运行,我在糟糕的BSD样式选项列表中有一个-P选项...尝试这样做。
chiggsy

谢谢,我知道了,但是再次感谢!BAH,我无法再次支持您的新答案:(
chiggsy

@Chiggsy:我认为是可行的-P。如果是这样,我将其添加到我的答案中。
暂停,直到另行通知。

作为记录,我赞成你的原始答案。这是完全正确的。您的修改,我无法投票。我想尽管...
chiggsy

@Chiggsy:我应该在-P答案中添加BSD样式以供将来参考吗?
暂停,直到另行通知。

2

您可以PAGER为此运行使用变量,以避免BSD / GNU兼容性问题。

"如果节标题包含空格,请使用引号:

PAGER='less -p ^"ENVIRONMENT"' man man



1

在man中,您可以键入/后跟匹配的模式,例如在要输入的屏幕手册页中找到DEFAULT KEY BINDINGS部分

/^DEFAULT KEY BINDINGS

是。这是真实的,但你必须要人去做。我要一步一步地解决。
chiggsy

1

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

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


1

我不喜欢--pager/ -P解决方案,因为它man可能被使用但不能直接调用(例如,当您使用时git help ...)。因此,使用envvar更灵活。但是我发现使用了PAGER='less ...某种冗余,因为less无论如何通常都是默认的寻呼机。您可以使用LESSenvvar直接将参数传递给less。这也有较少的报价问题。例如,即使其中有空格,它也会正确跳转到右侧部分:

LESS="-p file system" git help glossary

1
用这个答案到最上面!谢谢:)
Patryk Obara
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.