manページの特定の見出しにジャンプする方法は?


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での呼び出しです。

回答:


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

「説明」の見出しに移動します。

mans ^DESCRIPTION bash

連続して各manページの「説明」の見出しに移動します(プレスqEnter次のいずれかに行くために):

mans ^DESCRIPTION bash ksh zsh

「Parameter Expansion」の小見出しに移動します(正規表現を使用して任意の文字列を検索できます)。

mans '^ *Parameter Expansion' bash

Lessで使用した最新の正規表現を検索します。

mans '' bash

検索した一致は強調表示されません。希望する場合-Gは、オプションのをから削除してくださいless

この関数は、manサポートする他の引数とオプションを処理しようとはしません。


有望、私は私の質問を編集しました、あなたはmacportsまたはlinuxのいずれかを使用してそれを実行したのを参照してください、私はくだらないBSDスタイルのオプションリストに-Pオプションを持っています...それを試してみます。
chiggsy 2010年

ありがとう、それを手に入れましたが、もう一度ありがとう!BAH、私はあなたの新しい答えに再び
賛成

@Chiggsy:私はそれを-P働いたと思っています。もしそうなら、私はそれを私の答えに追加します。
追って通知があるまで一時停止。

記録として、私はあなたの元の答えを支持しました。それは完全に正しかった。あなたの編集、私は賛成できませんでした。私は...しかししたかった
chiggsy

@Chiggsy:-P今後の参考のために、BSDスタイルを回答に追加する必要がありますか?
追って通知があるまで一時停止。

2

PAGERこの実行に変数を使用して、BSD / GNU互換性の問題を回避できます。

"セクションタイトルにスペースが含まれている場合は、引用符を使用します。

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



1

人間では/、パターンに続けて入力することができます。たとえば、画面のマニュアルページのDEFAULT KEY BINDINGSセクションを見つけるには、次のように入力します。

/^DEFAULT KEY BINDINGS

はい。これは本当ですが、あなたはそれを行うため人の中にいる必要があります。シェルからその一歩を踏み出したいと思います。
chiggsy、

1

私は、manページのセクション間の比較的速いジャンプする簡単なトリックを使用します。私がヒット/^[A-Z]し、私は押すことができますnし、N前後にジャンプします。

検索の正規表現は、典型的なmanページの基本構造を利用しています。メインセクションは大文字で記述されており、インデントなしで行を開始しているため、行の先頭に表示されます。


1

--pager/ -Pソリューションは好きではありませmanんが、直接使用することはできません(たとえば、を使用する場合git help ...)。したがって、envvarを使用する方がより柔軟です。しかしPAGER='less ...lessとにかく通常はデフォルトのポケットベルなので、私は一種の冗長性を使用していると思います。LESSenvvarを使用して、パラメータを直接に渡すことができますless。これにより、引用の問題も少なくなります。たとえば、スペースが含まれていても、正しいセクションに正しくジャンプします。

LESS="-p file system" git help glossary

1
この答えでトップまで!ありがとう:)
Patryk Obara
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.