Wie liste ich die verfügbaren Optionen eines Plugins auf?

10

Ich habe kürzlich herausgefunden, dass YouCompleteMees eine g:ycm_autoclose_preview_window_after_insertionOption gibt, die das Dokumentationsvorschau-Fenster nach dem Beenden des Einfügemodus automatisch ausblendet, und ich habe kürzlich angefangen, vim zu verwenden. Daher habe ich zum ersten Mal eine Option festgelegt.

Daher habe ich mich gefragt, ob für andere Plugins, die ich in meiner VIM-Umgebung vollgestopft habe, Optionen verfügbar sind, ohne sie manuell zu suchen.

Sind sie beim Start von vim global registriert, damit ein Befehl, der sie auflistet, verfügbar ist, oder ist dies nicht möglich?

Iulian Onofrei
quelle
Das kannst du nicht. Variablen für Plugins müssen dokumentiert werden. Es gibt keine Möglichkeit zu wissen, welche Variablen verwendet werden, ohne den Code zu lesen.
Christian Brabandt

Antworten:

6

Vim bietet keine Möglichkeit, alle möglichen Plugin-Optionen zu kennen.

Als Plugin-Autor kann ich Ihnen sagen, dass dies ziemlich komplex ist, da es viele verschiedene Möglichkeiten gibt, fortzufahren. Zum Beispiel denken wir entweder, dass wir, wenn der Endbenutzer keinen Wert für eine Option angegeben hat .vimrc, diese Option erzwingen, dass sie existiert und einem Standardwert entspricht, oder wir können sagen: "Nehmen Sie entweder den von den Endbenutzer oder verwenden Sie einen fest codierten Standardwert ".

Bei diesem ersten Ansatz kann der Endbenutzer die Liste der verfügbaren Optionen mit einem c_CTRL-D, oder c_TABusw. anzeigen.

Immer mehr Plugins organisieren alle ihre Optionen in Wörterbüchern. dh anstatt g:plugin_foo_optionund zu haben g:plugin_bar_option, haben wir g:plugin.foo_optionund g:plugin.bar_option. Dadurch wird vermieden, dass die Liste g:der globalen Optionen verschmutzt wird , aber wir verlieren die automatische Vervollständigung der Befehlszeile (ich kann eventuell ein Problem mit dem Thema auf vim github eröffnen).

Bisher habe ich nur über globale Optionen gesprochen. Die meisten Plugins versuchen nicht, spezifischere Optionen zu unterstützen, selbst wenn sie dies hätten tun sollen. Zum Beispiel bedauere ich, dass weder YouCompleteMe noch Alternate noch viele andere Plugins projektspezifische Optionen anstelle globaler Optionen verwenden. In der Tat möchte ich je nach Projekt, an dem ich arbeite, die jeweiligen Optionen auf unterschiedliche Werte setzen. Leider ist dies kein Workflow, den sie berücksichtigt haben. In meinen Plugins können viele Optionen auf Projektbasis oder auf Pufferbasis spezialisiert werden. In letzter Zeit habe ich mir ein Experiment zu diesem Thema ausgedacht. Aber selbst mit dem üblichen und einfachen g:plugin_option+ b:plugin_optionPaar ist es nahezu unmöglich, alle verfügbaren Optionen zu kennen.

Manchmal versuche ich, Befehle anzubieten, mit denen ich Optionen festlegen kann, wie ich es mit Build-Tools-Wrappern getan habe, oder sogar einige Optionen im Menü anzuzeigen (wenn ich gvim verwende), aber es ist wirklich alles andere als perfekt.

Ich befürchte, dass die Dokumentation das Beste ist, was es gibt. Sie können sogar versuchen, eine :h pluginname^D. Es ist wahrscheinlich der beste verfügbare Ansatz.

Luc Hermitte
quelle
Tolle Erklärung der Möglichkeiten hinter den Kulissen. Und das :h pluginnameist eigentlich sehr toll! Ich muss mich also nicht mehrmals von vim entfernen, um die Dokumentation verschiedener Plugins zu lesen.
Iulian Onofrei
2

Vim verfügt nicht über eine Referenz der verfügbaren Optionen. Das Beste, was Sie tun können, ist zu sehen, was initialisiert wurde.

Für die integrierten Optionen von Vim gibt es den Befehl :set. Von :h :set:

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

Sie sehen nicht alle verfügbaren Optionen, nur die, die Sie geändert haben.

Sie können auch :letden Wert aller deklarierten Variablen und :let g:eine Liste der globalen Variablen auflisten. ( :h E121Eine Liste der Variablen finden Sie unter).

Beachten Sie, dass diese Listen nicht immer leicht zu lesen / zu analysieren sind. Für die Plugins ist es am besten, die Dokumentation zu lesen und die gewünschte Option zu finden.

Dieser Wikia-Tipp zur Anzeige der VIM-Umgebung könnte Sie auch interessieren

statox
quelle
Akzeptierte die andere Antwort, da sie ausführlicher ist, obwohl dies interessante Befehle im Zusammenhang mit meiner Frage enthält, die helfen könnten.
Iulian Onofrei