
Eu tenho um alias definido
alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.vimrc'
, mas quando digito svi myfile
recebo
Erro detectado durante o processamento de /home/jeff/.vimrc:
linha 1:
E117: Função desconhecida: patógeno#infect
Parece que preciso forçar o vim a verificar meu diretório .vim antes de executar. call pathogen#infect()
Como faço isso e, em geral, como posso ter certeza de que, quando executo, sudo vim
obterei o mesmo ambiente que teria apenas executando vim
?
Responder1
como posso obter minha inicialização normal do vim quando executo o sudo vim?
Usando $ sudo -e filename
em vez de $ sudo vim filename
.
Esse comando irá:
- peça sua senha (se a política de segurança do sudoers exigir);
- faça uma cópia
filename
em/tmp/
; - abracomo vocêcom o primeiro editor encontrado verificando o seguinte, em ordem:
$SUDO_EDITOR
,$VISUAL
,$EDITOR
e finalmente a lista de editores especificados em /etc/sudoers; - copie-o de volta para o nome do arquivo original na gravação.
Consulte man sudo
e man sudoers
para obter mais informações.
Responder2
Embora eu pretenda aceitar a resposta de @romainl como a solução preferida (depois que ele a ajusta um pouco), tentei novamente pesquisar uma solução para o erro que estava recebendo, porque odeio quando os computadores levam a melhor sobre mim.
Acontece que o erro tem a ver com a forma como a runtimepath
opção vim é resolvida ao ser executada como root. Então, para corrigir o erro, mudei um pouco meu alias para alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.svimrc'
e coloquei as três linhas a seguir em /home/jeff/.svimrc
set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after,/home/jeff/.vim
source /etc/vimrc
source /home/jeff/.vimrc
Não recebo mais o erro e meu material personalizado parece estar funcionando (até agora). Mas se eu encontrar qualquer outra falha, examinarei :help initialization
um pouco mais para ver o que mais deve ser inserido no meu arquivo .svimrc....