Я хотел бы изменить мой, .vimrc
чтобы прочитать значение переменной из внешнего файла. Как я могу это сделать?
В частности, мы с другом поделились git-репо с нашими .vim
файлами, но есть несколько небольших различий в том, что мы хотим в наших конфигах. Таким образом, большая часть файла является обычной, но мы используем операторы if, чтобы определить, загружать ли пользовательские разделы, например так:
let whoami = "user2"
if whoami == "user1"
...
После проверки нашей общей .vimrc
системы контроля за исходным кодом каждый из нас должен изменить let whoami
назначение, чтобы загрузить наш собственный раздел. Вместо этого я хотел бы сохранить отдельный файл, который может отличаться для каждого из нас и из которого vim будет загружать значение этой переменной.
Может быть, под другим углом зрения: vim будет автоматически читать все файлы в моем .vim
каталоге? Если это так, то мы можем поместить туда ссылку с именем username.vim и связать ее с внешним файлом, который будет отличаться для каждого из нас.
let whoami = ""
прямо передsource
строкой, чтобы, если не удалось загрузить внешний файл, существовала переменная, и я получил сообщение об ошибке, которое мы настроили ранее для переменной, которая не была установлена.silent! source
частиИспользование try / catch
Задав этот вопрос, я предложил другой вариант использования для загрузки внешнего файла: настройки для конкретной машины.
Поскольку мне может понадобиться или не нужно вносить изменения на данном компьютере, я использую
try/catch
для загрузки внешнего файла; если такого файла нет, я молча даю сбой.источник
Чтобы ответить на последний вопрос, файлы в
~/.vim
не загружаются автоматически, но все файлы в~/.vim/plugin
.источник
after
,autoload
)Вы можете заставить ваш ~ / .vimrc загрузить другой файл с помощью
:source
команды. Например, вы можете поместить свои уникальные команды в ~ / .myvimrc и загрузить ихИли, как вы думали, вы могли бы каждый написать свое имя в этом файле следующим образом:
и затем поместите это в ваш ~ / .vimrc:
Вместо того, чтобы помещать свои имена в файлы, вы можете использовать $ USER, как предложил Акира, или установить,
user
используяwhoami
это так:Функция substitute () необходима, потому что вывод system () обычно имеет прикрепленный к концу символ \ n.
источник
whoami
не работает на windowswhoami
порождает новый процесс, когда вы открываете свой редактор, он должен быть быстрым, а не (бесполезным) повторять работу несколько раз.имя вошедшего в систему пользователя доступно в переменной среды $ USER. Вы можете легко получить доступ к этой переменной:
так что просто используйте
в вашем vimrc и поместите ваши пользовательские настройки в
или как там у вас логин
источник
Я не уверен, как выглядит ваш vimrc, так что это может быть неосуществимо, но если есть большие части, которыми вы и ваш друг делитесь, вы можете разбить их на отдельные плагины. Вы можете добавить файлы в
~/.vim/plugin
каталог, чтобы они загружались при запуске. (Они загружены в алфавитном порядке - используйте:scriptnames
для проверки.)Таким образом, у каждого из вас может быть совершенно уникальный vimrc, но все ваши общие настройки находятся в плагинах. Если вы разобьете их логически, тогда вам будет легко делиться ими с другими.
источник