Я могу использовать , 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, чтобы вы могли легко переключаться в одну или другую сторону