Я думаю, что у меня это есть:
set rtp& let $VIMFILES=split(&rtp,",")[0]
Все еще кажется чрезмерно ручным, но это не так страшно, как я боялся.
Я хочу установить $VIMFILES
переменную в моем vimrc
файле, чтобы определить не зависящим от платформы путь к файлу моего vimfiles
каталога (а-ля Как мне получить домашний каталог Vim? ). Это должно быть тривиально (на самом деле, я думаю, что это должна быть встроенная переменная), но я не могу найти надежный способ сделать это. Метод, использующий плагин, требует, чтобы вы поместили любой код, который фактически использует эту переменную, в вашу after
директорию, что (на мой взгляд) делает плагин практически бесполезным. Метод, используемый if has
для определения операционной системы и ручной установки переменной, кажется нелепо хрупким и утомительным.
Поэтому я хотел бы просто сделать предположение, что первым компонентом значения параметра по умолчанию runtimepath
является vimfiles
каталог, который я хочу.
Тем не менее, я понятия не имею, как извлечь первый компонент из rtp
. Это, опять же, кажется, что это должно быть тривиально, но &rtp[0]
расширяется до первого символа пути времени выполнения, потому что, очевидно, &rtp
на самом деле является строкой, даже если это явно семантически список (!!?).
Итак ... как мне получить первый компонент runtimepath? Есть лучший способ сделать это?
Я думаю, что у меня это есть:
set rtp& let $VIMFILES=split(&rtp,",")[0]
Все еще кажется чрезмерно ручным, но это не так страшно, как я боялся.