Ich habe vim in den letzten Jahren für die Bearbeitung von Konfigurationen und Skripten auf entfernten Servern verwendet. Vor ein paar Wochen habe ich beschlossen, den nächsten Schritt zu machen und zu versuchen, (Mac) vim als meinen regulären Editor neben Sublime Text 2 zu verwenden. Jetzt habe ich einen Punkt erreicht, an dem ich mein erstes Plugin erstellen möchte.Elegante Möglichkeit zu überprüfen, ob eine globale Plugin-Variable in einem vim-Plugin gesetzt ist
Mein Plugin definiert ~ 16 globale Variablen, die von einem Benutzer zugewiesen werden können, um bestimmte Eigenschaften des Plugins anzupassen. Ich fragte mich, was der eleganteste (vielleicht subjektive) Weg wäre, um zu überprüfen, ob ein Benutzer einer bestimmten Variablen bereits seinen eigenen Wert zugewiesen hat. Ich verschiedene andere Plugins und die „Muster“ Ich inspizierte scheint sehe bisher immer zu sein:
if !exists("g:pluginname_setting")
let g:pluginname_setting="default"
endif
Das scheint nach vorne einfach und direkt zu sein. Aber ich würde immer wieder dasselbe Stück Code wiederholen. Da vi (m) schon ziemlich lange existiert, bin ich mir ziemlich sicher, dass die Leute viele Möglichkeiten zum Schreiben von Plugins ausprobiert haben und es wurde eine Art "Best Practice" entwickelt, von der ich annehme, dass sie das "Muster" ist als Beispiel. Aber wäre es nicht eleganter, eine Funktion aufzurufen, um ein Wörterbuch zu füllen, das alle Plugin-Einstellungen enthält, und dann über das Wörterbuch zu iterieren, um die Schlüssel zu überprüfen, ob ein Benutzer seine persönlichen Präferenzen bereits definiert hat? Wäre das eine gute Idee oder sollte ich lieber einfach die Idee fallen lassen und mich an den ìf !exists()
Ansatz halten?
Danke für Ihre Antwort. :) Das Plugin wird sich mit einigen Highlights beschäftigen. So sind 2/3 der verfügbaren Vars mit visuellen Appearance wie Farben, fg oder bg in verschiedenen Situationen verwandt. – Saucier
Für Highlights ist der übliche Ansatz zu ': hi def pluginGroup guifg = ...' eine Standardhervorhebung; Dies kann dann in .vimrc überschrieben werden. –
Auch wenn ich die Farben der bestehenden Hi-Gruppen überschreiben würde? – Saucier