Mogę użyć vim -u filename
do użycia filename
zamiast mojego domyślnego .vimrc
. Korzystam z tej metody podczas przełączania kontekstów użytkownika ( su
), aby korzystać z mojego, .vimrc
nawet jeśli działam jako superużytkownik.
Jak mogę to zrobić również dla folderu, który domyślnie jest ~/.vim
tak, że mogę skierować Vima z wiersza poleceń do innego folderu?
Co chcę osiągnąć
OK, załóżmy user joe
( HOME=/home/joe
) i user root
( HOME=/root
). Użytkownik joe
ma ustawiony alias, dla vim
którego wygląda tak (ale pierwotnie ustawiony za pomocą $HOME
zmiennej, aby uczynić to dynamicznym):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Następnie użytkownik joe
robi coś zgodnie z sudo su -
(ale z dodaną magią), co powoduje, że .bashrc
i inne gadżety /home/joe
zostaną załadowane root
. Użytkownik root
ma teraz dokładnie taki sam alias dla vim
zestawu, jak pokazano powyżej.
Problem polega na tym, że .vimrc
jest to używane w różnych systemach i różnych scenariuszach. Często nazywane jest konto Joe joe
, ale czasami będzie to coś podobnego local.joe
lub cokolwiek innego, co spowoduje inną wartość $HOME
. Tak więc kodowanie bezwzględne ścieżki do ~/.vim
folderu nie wydaje się dobrym pomysłem. Jednak w naszym powyższym scenariuszu użytkownik root
nie ma folderu, /root/.vim
który powinien istnieć domyślnie za pośrednictwem funkcji load .vimrc
( /home/joe/.vimrc
).
To, co chcę osiągnąć - najlepiej w wierszu poleceń - to skłonić Vima do używania wtyczek itp. Od spodu /home/joe/.vim
po uruchomieniu jako root
(zakładając, że alias
jest ustawiony jak pokazano - inne przypadki można zignorować). Jeśli istnieje jakaś metoda dynamiczna za pomocą VimScript, proszę podać wskaźniki. Ale $HOME
myślę, że użycie takich zmiennych, jak mogłoby doprowadzić do złapania 22.
ln
. jak 'mv ~ / .vim ~ / .vim -okolwiek && ln -s ~ / .vim -okolwiek ~ / .vim` następnie zrób to samo dla.vimrc
. podsumuj to jakimś pseudonimem bash, abyś mógł łatwo przełączać się między nimi