Я могу использовать , vim -u filename
чтобы использовать filename
вместо моего по умолчанию .vimrc
. Я использую этот метод при переключении пользователя contextx ( su
), чтобы использовать мой .vimrc
даже при работе в качестве суперпользователя.
Как я могу достичь того же также для папки , в которой по умолчанию является ~/.vim
таким , что я могу указать Vim из командной строки в другую папку?
Чего я хочу достичь
Хорошо, предположим, user joe
( HOME=/home/joe
) и user root
( HOME=/root
). У пользователя joe
есть набор псевдонимов, vim
который выглядит следующим образом (но изначально установлен с использованием $HOME
переменной, чтобы сделать это динамическим):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Затем пользователь joe
делает что-то вроде sudo su -
(но с добавленной магией), что приводит к тому, что .bashrc
и другие полезности /home/joe
будут загружены root
. Пользователь root
теперь точно такой же псевдоним для vim
набора , как показано выше.
Проблема в том, что это .vimrc
используется в различных системах и в различных сценариях. Часто вызывается учетная запись Джо joe
, но иногда это будет нечто подобное local.joe
или что-то еще, что приведет к другому значению для $HOME
. Поэтому жесткое кодирование абсолютного пути к ~/.vim
папке не кажется хорошей идеей. Однако в нашем вышеупомянутом сценарии у пользователя root
нет папки, /root/.vim
которая, как ожидается, будет существовать по умолчанию с помощью методаагаг .vimrc
( /home/joe/.vimrc
).
Чего я хочу добиться - желательно в командной строке - это заставить Vim использовать плагины и т. Д. Из-под них /home/joe/.vim
при запуске как root
(при условии, что alias
установлен, как показано - другие случаи можно игнорировать). Если есть какой-либо динамический метод через VimScript, пожалуйста, предоставьте указатели. Но использование таких переменных, как $HOME
, я думаю, приведет к уловке 22.
ln
. например, 'mv ~ / .vim ~ / .vim-what & & ln -s ~ / .vim-what ~ / .vim`, сделайте то же самое для.vimrc
. оберните все это некоторым псевдонимом bash, чтобы вы могли легко переключаться в одну или другую сторону