Получить каталог vimfiles из опции runtimepath

338
Kyle Strand

Я хочу установить $VIMFILESпеременную в моем vimrcфайле, чтобы определить не зависящим от платформы путь к файлу моего vimfilesкаталога (а-ля Как мне получить домашний каталог Vim? ). Это должно быть тривиально (на самом деле, я думаю, что это должна быть встроенная переменная), но я не могу найти надежный способ сделать это. Метод, использующий плагин, требует, чтобы вы поместили любой код, который фактически использует эту переменную, в вашу afterдиректорию, что (на мой взгляд) делает плагин практически бесполезным. Метод, используемый if hasдля определения операционной системы и ручной установки переменной, кажется нелепо хрупким и утомительным.

Поэтому я хотел бы просто сделать предположение, что первым компонентом значения параметра по умолчанию runtimepathявляется vimfilesкаталог, который я хочу.

Тем не менее, я понятия не имею, как извлечь первый компонент из rtp. Это, опять же, кажется, что это должно быть тривиально, но &rtp[0]расширяется до первого символа пути времени выполнения, потому что, очевидно, &rtpна самом деле является строкой, даже если это явно семантически список (!!?).

Итак ... как мне получить первый компонент runtimepath? Есть лучший способ сделать это?

0
Из любопытства, какую проблему вы пытаетесь решить? romainl 10 лет назад 0
Я использую переменную `$ VIMFILES` как для настройки` rtp` и `path` для Vundle, так и для установки` undodir` для постоянной отмены. Без такой переменной мне понадобилась бы логика поиска каталогов vimfile в обеих этих частях моей настройки Vim. Kyle Strand 10 лет назад 0

1 ответ на вопрос

0
Kyle Strand

Я думаю, что у меня это есть:

set rtp& let $VIMFILES=split(&rtp,",")[0] 

Все еще кажется чрезмерно ручным, но это не так страшно, как я боялся.