Ich habe kürzlich herausgefunden, dass YouCompleteMe
es eine g:ycm_autoclose_preview_window_after_insertion
Option 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?
Antworten:
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
, oderc_TAB
usw. anzeigen.Immer mehr Plugins organisieren alle ihre Optionen in Wörterbüchern. dh anstatt
g:plugin_foo_option
und zu habeng:plugin_bar_option
, haben wirg:plugin.foo_option
undg:plugin.bar_option
. Dadurch wird vermieden, dass die Listeg:
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_option
Paar 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.quelle
:h pluginname
ist eigentlich sehr toll! Ich muss mich also nicht mehrmals von vim entfernen, um die Dokumentation verschiedener Plugins zu lesen.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
:Sie sehen nicht alle verfügbaren Optionen, nur die, die Sie geändert haben.
Sie können auch
:let
den Wert aller deklarierten Variablen und:let g:
eine Liste der globalen Variablen auflisten. (:h E121
Eine 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
quelle