Eu posso usar vim -u filenamepara usar em filenamevez 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 é ~/.vimpara 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 joetem um alias definido para o vimqual se parece com isso (mas originalmente definido usando a $HOMEvariável para tornar isso dinâmico):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Em seguida, o usuário joefaz algo como sudo su -(mas com mágica adicionada), resultando no carregamento de .bashrcoutros itens . O usuário agora tem exatamente o mesmo alias para definir, como mostrado acima./home/joerootrootvim
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.joeou qualquer outra coisa, resultando em um valor diferente para $HOME. Portanto, codificar um caminho absoluto para a ~/.vimpasta não parece ser uma boa ideia. No entanto, em nosso cenário acima, o usuário rootnão possui uma pasta /root/.vimque, 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/.vimquando iniciado como root(assumindo que o aliasestá 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 $HOMEque 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