Vim Script: Kann in Zuordnungen auf scriptlokale Variablen verwiesen werden?
1106
Steve Vermeulen
Ich weiß, dass Sie sich auf scriptlokale Funktionen beziehen können, <SID>aber was ist mit scriptlokalen Variablen? Ich habe folgendes versucht und das Schlagen <c-space>schlägt fehl:
Sie können dies umgehen, indem Sie Accessor-Funktionen schreiben (wie oben), aber manchmal wäre es schön, direkt darauf verweisen zu können.
2 Antworten auf die Frage
5
Ingo Karkat
Nein, skriptlokale Variablen sind in der Tat privat für das Skript. Sie müssen tatsächlich eine Accessor-Funktion schreiben.
In Plugins ist dies nicht so sehr ein Problem, da sie die Funktionen (und damit auch die Zustandsvariablen des Skripts) in Autoload- Skripts trennen sollten, sodass Zuordnungen / Befehle (im Pluginskript definiert ) ohnehin auf ein anderes Skript verweisen müssen .
2
dabyly
Ich wollte das ursprünglich kommentieren, brauche aber 50 Wiederholungen. Hier ist ein kleiner Vorschlag, und ich hoffe, es ist am Ziel.
Kann verwendet werden (innerhalb des Skripts, in dem die Variable definiert ist)
exe "nnoremap <c-space> :echo ".s:testVar."<cr>"
Ich verwende dies für das Einfügen von s: var-Pfaden in in meiner .vimrc definierten Zuordnungen. Lass es mich wissen, wenn ich den Punkt verpasst habe oder so ...
Beachten Sie, dass hierdurch der Wert der Variablen erfasst wird, wenn die Zeile ausgeführt wird, und nicht der Live-Wert, wenn das Mapping ausgelöst wird.
Kevin Cox vor 6 Jahren
0