Command-Line-Interface
如何跳轉到手冊頁中的特定標題?
為此,我在 vim 中設置了一個文件類型。我希望幫助程序成為
man
. 當然,這是行不通的。例如,對於ssh_config
’s 手冊頁,如果我在一個單詞上,比如說ServerAliveCountMax
,我會得到一個錯誤,因為沒有手冊頁用於ServerAliveCountMax
- 它在ssh_config
’s 手冊頁中。從命令行,有沒有辦法跳轉到一個字元串或在裡面執行某種類型的命令
man
?就像如何info
將我帶到資訊頁面的Miscellaneous
部分一樣:screen
info screen Miscellaneous
這可能
man
嗎?即使執行搜尋也可以…對於帶有 的 OSX/*BSD
/usr/bin/man
,這有效:man -P 'less -p PATTERN' ssh_config
從 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
轉到“描述”標題:
mans ^DESCRIPTION bash
依次轉到每個手冊頁的“描述”標題(按
q
和Enter
轉到下一個):mans ^DESCRIPTION bash ksh zsh
轉到“參數擴展”子標題(您可以使用正則表達式搜尋任何字元串):
mans '^ *Parameter Expansion' bash
搜尋您在 Less 中使用的最新正則表達式:
mans '' bash
您搜尋的匹配項不會突出顯示。如果您願意,只需
-G
從選項中刪除less
.此函式不嘗試處理
man
支持的其他參數和選項。