Ich glaube ich habe es verstanden:
set rtp& let $VIMFILES=split(&rtp,",")[0]
Es wirkt zwar immer noch zu manuell, aber es ist nicht so hässlich, wie ich befürchtet habe.
Ich möchte eine $VIMFILES
Variable in meiner vimrc
Datei festlegen, um den Dateipfad meines vimfiles
Verzeichnisses auf eine nicht plattformspezifische Weise zu bestimmen (a la Wie erhalte ich ein Vim-Home-Verzeichnis? ). Dies sollte trivial sein (in der Tat denke ich, dass es eine eingebaute Variable sein sollte), aber ich kann keine robuste Methode dafür finden. Die Methode, die ein Plugin verwendet, erfordert, dass Sie den Code, der diese Variable verwendet, in Ihrem after
Verzeichnis ablegen, was das Plugin (meiner Meinung nach) fast unbrauchbar macht. Die Methode, mit if has
der das Betriebssystem ermittelt und die Variable manuell festgelegt wird, erscheint unsinnig fragil und langweilig.
Ich möchte also einfach davon ausgehen, dass die erste Komponente des Standardwerts der runtimepath
Option das vimfiles
Verzeichnis ist, das ich möchte.
Ich habe jedoch keine Ahnung, wie man die erste Komponente extrahiert rtp
. Dies scheint wiederum trivial zu sein, erstreckt sich aber &rtp[0]
auf den ersten Buchstaben des Laufzeitpfads, da es sich offensichtlich &rtp
um eine Zeichenfolge handelt, auch wenn es sich eindeutig um eine Liste (!!?) Handelt .
Also ... wie bekomme ich die erste Komponente des Laufzeitpfads? Gibt es einen besseren Weg, dies zu tun?
Ich glaube ich habe es verstanden:
set rtp& let $VIMFILES=split(&rtp,",")[0]
Es wirkt zwar immer noch zu manuell, aber es ist nicht so hässlich, wie ich befürchtet habe.