6

Я знаю, что могу :source /path/to/some/.vimrc загрузить .vimrc моего пользователя при запуске от имени пользователя root, но как я могу также использовать весь .vim/ ? Есть ли опция запуска для использования /home/user/.vim/ которую я могу настроить как псевдоним?

И где в прекрасном руководстве я нашел бы эту информацию, если бы знал, что искать. :help .vim или :help .vimrc не нашел информацию об использовании всего .vim/ direcotry (-U только для файла .vim ).

Благодарю.

3 ответа3

10

Похоже, что VIMINIT и VIMRUNTIME не используются, как сказал Акира .

VIMINIT используется как команда Ex, поэтому VIMINIT=/home/user/.vimrc попытается выполнить поиск и выдаст ошибку, например:

search hit BOTTOM, continuing at TOP
Error detected while processing VIMINIT:
E486: Pattern not found: home

Обычно VIMRUNTIME указывает на то место, где установлены основные файлы поддержки vim, например /usr/share/vim/vim73 , поэтому, если он будет перенаправлен в /home/user/.vim, vim потеряет много основных функций, если только vim не установлен в /home/usr/.vim.


В соответствии с :help -u и :help vimrc , опция -u vimrc может указывать файл .vimrc но пропускает большинство других файлов инициализации, таких как системный vimrc, например. /etc/vimrc . Если указанный файл vimrc выполняет почти все задания, то недостаток, если он вызывается так, тривиален.

В соответствии с :help runtimepath , по runtimepath будут искать файлы поддержки, поэтому мы можем добавить /home/user/.vim и добавить /home/user/.vim/after к runtimepath прежде чем использовать файл vimrc, используя параметры --cmd в запускать.

Подводя итог, мы можем настроить этот псевдоним на использование ~/.vimrc и ~/vim:

alias vim='vim --cmd "set runtimepath^=/home/user/.vim" \
               --cmd "set runtimepath+=/home/user/.vim/after" \
               -u /home/user/.vimrc'

пс. Кроме того, две простые символические ссылки могут также работать для вас.

mv /root/.vimrc{,.bak}
mv /root/.vim{,.bak}
ln -s /home/user/.vimrc /root/
ln -s /home/user/.vim /root/
1

используйте переменную окружения VIMINIT чтобы указывать на правый .vimrc и VIMRUNTIME чтобы указывать на правый .vim . Вы можете сделать это через env:

$> env VIMINIT=/home/user/.vimrc VIMRUNTIME=/home/user/.vim/ vim

$> VIMINIT='let $MYVIMRC = expand('\''~user'\'') . '\''/.vimrc'\''|source $MYVIMRC' vim -c 'set runtimepath=~user/.vim,/var/lib/vim/addons,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,/var/lib/vim/addons/after,~user/.vim/after'

как всегда: если это слишком долго для ввода, создайте shell-функцию или псевдоним оболочки.

чтобы узнать больше о том, как vim запускается и что происходит за кулисами, прочитайте :help initialization.

0

Вероятно, лучшее решение когда-либо.

export MYVIMRC="/xxx/.vimrc"
export VIMINIT=":set runtimepath+=/xxx/.vim|:source $MYVIMRC"

где xxx - настроенный путь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .