Eu posso usar vim -u filename
para usar em filename
vez do meu padrão .vimrc
. Estou usando esse método ao alternar contextos de usuário ( su
) para usar o meu .vimrc
mesmo sendo executado como superusuário.
Como posso obter o mesmo também para a pasta que por padrão é ~/.vim
para que eu possa apontar o Vim da linha de comando para uma pasta alternativa?
O que eu quero alcançar
Ok, suponha usuário joe
( HOME=/home/joe
) e usuário root
( HOME=/root
). O usuário joe
tem um alias definido para o vim
qual se parece com isso (mas originalmente definido usando a $HOME
variável para tornar isso dinâmico):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Em seguida, o usuário joe
faz algo como sudo su -
(mas com mágica adicionada), resultando no carregamento de .bashrc
outros itens . O usuário agora tem exatamente o mesmo alias para definir, como mostrado acima./home/joe
root
root
vim
O problema é que isso .vimrc
é usado em vários sistemas e em vários cenários. Muitas vezes, a conta de Joe é chamada joe
, mas às vezes será algo parecido local.joe
ou qualquer outra coisa, resultando em um valor diferente para $HOME
. Portanto, codificar um caminho absoluto para a ~/.vim
pasta não parece ser uma boa ideia. No entanto, em nosso cenário acima, o usuário root
não possui uma pasta /root/.vim
que, no entanto, é esperada que exista por padrão através do carregado .vimrc
( /home/joe/.vimrc
).
O que eu quero alcançar - de preferência na linha de comando - é fazer com que o Vim use plugins etc. por baixo /home/joe/.vim
quando iniciado como root
(assumindo que o alias
está definido como mostrado - outros casos podem ser ignorados). Se houver algum método dinâmico via VimScript, forneça ponteiros. Mas usar variáveis como a $HOME
que levaria a um problema 22, eu acho.
ln
. como 'mv ~ / .vim ~ / .vim-qualquer coisa && ln -s ~ / .vim-qualquer coisa ~ / .vim`, faça o mesmo para.vimrc
. embrulhar tudo isso com algum apelido festa para que você possa facilmente alternar uma forma ou de outra