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

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

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

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

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

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

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

решение1

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

source otherVimScriptFilePath.vim

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

" otherVimScriptFilePath.vim
let whoami = "user1"

решение2

Использование try/catch

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

Поскольку мне может потребоваться внести изменения на конкретную машину, а может и нет, я использую , try/catchчтобы загрузить внешний файл; если такого файла нет, я позволяю ему молча завершиться ошибкой.

" If there are any machine-specific tweaks for Vim, load them from the following file.
try 
  source ~/.vimrc_machine_specific
catch
  " No such file? No problem; just ignore it.
endtry 

решение3

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

решение4

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

:echo $USER

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

execute "silent! source vimrc." . $USER

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

vimrc.joe

или как там у вас имя пользователя

Связанный контент