¿Cómo puedo obtener mi inicialización normal de vim cuando ejecuto sudo vim?

¿Cómo puedo obtener mi inicialización normal de vim cuando ejecuto sudo vim?

Tengo un alias definido alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.vimrc'pero cuando escribo svi myfileme 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 vimobtenga 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 filenameen lugar de $ sudo vim filename.

Ese comando:

  1. solicitar su contraseña (si la política de seguridad de sudoers así lo requiere);
  2. hacer una copia de filenameen /tmp/;
  3. abrelocomo tucon el primer editor encontrado marcando lo siguiente, en orden: $SUDO_EDITOR, $VISUAL, $EDITORy finalmente la lista de editores especificados en /etc/sudoers;
  4. cópielo nuevamente al nombre de archivo original al escribir.

Consulte man sudoy man sudoerspara 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 runtimepathse 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 initializationun poco más para ver qué más debería incluirse en mi archivo .svimrc...

información relacionada