Я хотел бы изменить 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
или как там у вас имя пользователя