
Tengo un alias definido
alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.vimrc'
pero cuando escribo svi myfile
me sale
Error detectado al procesar /home/jeff/.vimrc:
línea 1:
E117: Función desconocida: patogeno#infect
Parece que necesito forzar a vim a escanear mi directorio .vim antes de ejecutar. call pathogen#infect()
¿Cómo hago eso y, en general, cómo puedo asegurarme de que cuando lo ejecuto sudo vim
obtenga el mismo entorno que tendría simplemente ejecutando vim
?
Respuesta1
¿Cómo puedo obtener mi inicialización normal de vim cuando ejecuto sudo vim?
Usando $ sudo -e filename
en lugar de $ sudo vim filename
.
Ese comando:
- solicitar su contraseña (si la política de seguridad de sudoers así lo requiere);
- hacer una copia de
filename
en/tmp/
; - abrelocomo tucon el primer editor encontrado marcando lo siguiente, en orden:
$SUDO_EDITOR
,$VISUAL
,$EDITOR
y finalmente la lista de editores especificados en /etc/sudoers; - cópielo nuevamente al nombre de archivo original al escribir.
Consulte man sudo
y man sudoers
para obtener más información.
Respuesta2
Si bien tengo la intención de aceptar la respuesta de @romainl como la solución preferida (después de que la modifique un poco), intenté de nuevo investigar una solución al error que estaba recibiendo porque odio cuando las computadoras me superan.
Resulta que el error tiene que ver con cómo runtimepath
se resuelve la opción vim cuando se ejecuta como root. Entonces, para corregir el error, cambié ligeramente mi alias alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.svimrc'
y puse las siguientes tres líneas en /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
Ya no recibo el error y mis elementos personalizados parecen estar funcionando (hasta ahora). Pero si me encuentro con otros fallos, examinaré :help initialization
un poco más para ver qué más debería incluirse en mi archivo .svimrc...