Как я могу сделать .vimrc считанным из внешнего файла?

Я хотел бы изменить мой .vimrc считать значение переменной из внешнего файла. Как я могу сделать это?

А именно, друг и я совместно используем мерзавца repo с нашим .vim файлы, но существует несколько небольших различий в том, что мы хотим в наших конфигурациях. Таким образом, большая часть файла является общей, но мы используем, если операторы, чтобы определить, загрузить ли определенные для пользователя разделы, как это:

let whoami = "user2"
if whoami == "user1"
...

После проверки нашего общего .vimrc из управления исходным кодом каждый из нас должен измениться let whoami присвоение так наш собственный раздел будет загружено. Вместо этого я хотел бы сохранить отдельный файл, который может отличаться для каждого из нас, и из которого энергия загрузит то значение переменной.

Возможно, другой угол на этом: Будет энергия автоматически читать все файлы в моем .vim каталог? Если так, мы могли каждый поместить символьную ссылку, там названную username.vim и ссылкой, что во внешний файл, который будет отличаться для каждого из нас.

24
задан 21.12.2010, 21:13

5 ответов

в Вашем основном .vimrc файле:

source otherVimScriptFilePath.vim

затем просто поместите свой переменный оператор в тот файл:

" otherVimScriptFilePath.vim
let whoami = "user1"
35
ответ дан 07.12.2019, 09:42

Отвечать на последний вопрос, файлы в ~/.vim автоматически не загружаются, но все файлы в ~/.vim/plugin .

5
ответ дан 07.12.2019, 09:42

название зарегистрированного пользователя доступно в переменной среды $USER. можно получить доступ к той переменной легко:

:echo $USER

таким образом просто используйте

execute "silent! source vimrc." . $USER

в Вашем vimrc и помещенный Ваш пользователь определенные настройки в

vimrc.joe

или независимо от того, что Ваше имя для входа в систему

2
ответ дан 07.12.2019, 09:42

У Вас может быть свой ~/.vimrc, загружают другой файл с помощью :source команда. Например, Вы могли каждый поместить свои уникальные команды в ~/.myvimrc и загрузить те команды

source ~/.myvimrc

Или, поскольку Вы думали, Вы могли каждый поставить свое имя в том файле как это:

let user = "user1"

и затем помещенный это в Ваш ~/.vimrc:

source ~/.myvimrc
if user == "user1"
    " do this
elseif user == "user2"
    " do that
else
    echo "Invalid user"
endif

Вместо того, чтобы ставить Ваши имена в файлах, тем не менее, Вы могли использовать $USER в качестве akira предложенный, или устанавливать user использование whoami, как это:

let user = substitute(system('whoami'), '\n', '', '')

Замена () функция необходима, потому что выводу системы () обычно прикрепляли '\n' на конце.

4
ответ дан 07.12.2019, 09:42

Я не уверен, на что Ваш vimrc похож так, это не может быть выполнимо, но если существуют значительные части, что Вы и Ваш друг доля, Вы могли бы хотеть разбить их в отдельные плагины. Можно добавить файлы к ~/.vim/plugin каталог, чтобы иметь их загруженный на запуске. (Они загружаются в алфавитном порядке - использование :scriptnames проверять.)

Тем путем у Вас может каждый быть vimrc, это абсолютно уникально, но вся Ваша общая конфигурация находится в плагинах. Если Вы разбиваете их логически, то это помогает совместно использовать с другими также.

0
ответ дан 07.12.2019, 09:42

Теги

Похожие вопросы