オープンマンセクション3


10

LinuxでCを開発するためにVimを使用しています。K基になる単語のmanページを開くためにを押すと、どのmanセクションを開くかを制御できません。それをどこかに指定する方法はありますか?


素晴らしい提案:これset keywordprg=man\ 3\ -sを.vimrcに追加してしまいました
stdcall

1
言語ごとに異なる「ヘルプ」プログラムが必要ですか?
D.ベンノーブル2018年

第3章以外の目的でvim内から人を起動する必要はありませんでした
stdcall

2
このキーワードプラグインをftpluginに設定するとK、他のファイルタイプで作業を続けることができます:h ftplugin
statox

回答:


18

ドキュメントからの引用

  When 'keywordprg' is equal to "man -s", a count
  before "K" is inserted after the "-s".  If there is
  no count, the "-s" is removed.

man -s'keywordprg'設定のデフォルトのようですので、タイプする前にカウントを使用するだけでうまくいくKようです。

(で正常にテスト2Kし、3Kカーソルがオンですopen)。


3
くそー私は43秒遅すぎた!:)
statox

8

から:h K

                            *K*
K           Run a program to lookup the keyword under the
            cursor.  [...]
            Special cases:
            - When 'keywordprg' is equal to "man" or starts with
              ":", a [count] before "K" is inserted after
              keywordprg and before the keyword.  For example,
              using "2K" while the cursor is on "mkdir", results
              in: 
                !man 2 mkdir
            - When 'keywordprg' is equal to "man -s", a count
              before "K" is inserted after the "-s".  If there is
              no count, the "-s" is removed.

だから3Kトリックをする必要があります


4

Linuxを使用している場合は、mandbを使用している可能性が高くman、セクションの検索順序を制御できます。を参照してくださいman 1 man

MANSECT
$ MANSECTが設定されている場合、その値はセクションのコロン区切りのリストであり、検索する手動セクションとその順序を決定するために使用されます。/etc/manpath.configのSECTIONディレクティブで上書きされない限り、デフォルトは「1 nl 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7」です。

したがって、別のオプションは、シェル初期化ファイルに設定することです:

MANSECT=3:3posix:3pm:3perl:3am:1:n:l:8:2:5:4:9:6:7
export MANSECT

またはあなたのvimrcで:

let $MANSECT="3:3posix:3pm:3perl:3am:1:n:l:8:2:5:4:9:6:7"

(また、プログラミングしている内容によっては、セクション2にも高い優先度が必要になる場合があります。)

(または、マンページが言うように、でシステム全体に設定し/etc/manpath.configます。)

これはFreeBSDのmanでも機能します


それが-s内部で何をしているのか
クリスチャンブラバンド

1
実際、を-sオーバーライドしますMANSECT。しかし、これは特定のセクションを強制する(そうする<count>Kでしょう)代わりに優先リストを設定するのに役立ちます。たとえばopen(3posix)open(2)が利用できない場合でも、(おそらくそれ以上に)役に立つでしょう。man -s 3 open単に無視しopen(2)ます。
muru、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.