プラグインの利用可能なオプションをリストする方法は?


10

私は最近、挿入モードを終了した後にドキュメントプレビューウィンドウを自動的に非表示にYouCompleteMeするg:ycm_autoclose_preview_window_after_insertionオプションがあることを 知りました。また、最近vimを使い始めたので、初めてオプションを設定しました。

そのため、自分のvim環境で詰め込んだ他のプラグインに、手動で検索せずに使用できるオプションがあるかどうか疑問に思いました。

それらをリストするコマンドを使用できるようにするために、vimの起動時にそれらはグローバルに登録されていますか、またはこれは実行できませんか?


できません。プラグインの変数は文書化する必要があります。コードを読み取らずにどの変数が使用されるかを知る方法はありません。
Christian Brabandt 16

回答:


6

Vimはすべての可能なプラグインオプションを知る方法を提供していません。

プラグインの作成者として、さまざまな方法で進められるため、これは非常に複雑であると言えます。たとえば、エンドユーザーがオプションの値を提供していない場合は、.vimrcこのオプションを強制的に存在させ、デフォルト値と同じにするか、「次のように設定した値を取るエンドユーザー、またはハードコードされたデフォルト値を使用します。」

その最初のアプローチでは、エンドユーザーはc_CTRL-D、またはc_TAB、などを使用して利用可能なオプションのリストを表示できます。

ますます多くのプラグインが、すべてのオプションを辞書に整理することを選択しています。つまり、g:plugin_foo_optionandの代わりにand g:plugin_bar_optiong:plugin.foo_optionありg:plugin.bar_optionます。これg:により、グローバルオプションのリストの汚染を回避できますが、コマンドラインのオートコンプリートは失われます(最終的には、vim githubで件名の問題を開く可能性があります)。

これまでのところ、グローバルオプションについてのみ説明しました。ほとんどのプラグインは、実行すべきであったとしても、より具体的なオプションをサポートしようとしません。たとえば、YouCompleteMealternateも他の多くのプラグインも、グローバルオプションではなくプロジェクト固有のオプションを使用していないことを後悔しています。実際、私が取り組んでいるプロジェクトに応じて、それぞれのオプションを異なる値に設定したいと思います。残念ながら、これは彼らが検討したワークフローではありません。私のプラグインでは、多くのオプションをプロジェクトベースまたはバッファベースで特化できます。最近、私はこの問題について実験を思いつきました。しかし、通常の単純なg:plugin_option+ b:plugin_optionペアであっても、利用可能なすべてのオプションを知ることはほとんど不可能です。

build-tools-wrappersで行ったようにオプションの設定に役立つコマンドを提供したり、メニューにいくつかのオプションを表示したりすることもあります(gvimを使用している場合)が、完全とはほど遠い。

ドキュメントは入手可能な最良のものだと思います。あなたも試すことができ:h pluginname^Dます。それはおそらく利用可能な最善のアプローチです。


舞台裏のオプションの素晴らしい説明。そして、:h pluginname実際には非常に素晴らしいです!したがって、さまざまなプラグインのドキュメントを読むためにvimを何度も離れる必要はありません。
Iulian Onofrei 2017年

2

Vimには利用可能なオプションのリファレンスはありません。あなたができる最善のことは、何が初期化されたかを確認することです。

Vimの組み込みオプションには、コマンドがあります:set。から:h :set

:se[t] Show all options that differ from their default value.

利用可能なオプションはすべて表示されず、変更したオプションのみが表示されます。

を使用:letして、宣言されたすべての変数の値を:let g:一覧表示したり、グローバル変数の一覧を表示したりすることもできます。(:h E121表示できる変数のリストについては、を参照してください)。

これらのリストは、読み取り/解析が必ずしも容易ではないことに注意してください。プラグインの場合、ドキュメントを読んで必要なオプションを見つけるのが最善の方法です。

このウィキアのヒントで、vim環境を表示する方法にも興味があるかもしれません。


他の回答はより冗長なので受け入れましたが、これには私の質問に関連する興味深いコマンドが役立つ可能性があります。
Iulian Onofrei 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.