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)
依次转到每个手册页的“描述”标题(按q和Enter转到下一个):
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支持的其他参数和选项。
我使用一个简单的技巧在手册页的各部分之间相对快速地跳转:我点击/^[A-Z]然后我可以按n和N来向前和向后跳转。
搜索正则表达式利用典型手册页的基本结构 - 主要部分以大写字母编写,并且它们以没有缩进的方式开始一行,因此它们应该出现在行的开头。