Tengo mis archivos Vim personalizados ~/.vim
y configuraciones en ~/.vimrc
. Sin embargo, a veces tengo que editar algunos archivos /etc
y tal.
Si comienzo a Vim así:
$ sudo vim /etc/rc.conf
Pierdo mi configuración ya que Vim usa la predeterminada. Entonces: ¿cómo puedo ejecutar Vim con privilegios de root para editar archivos sin perder la configuración de mi usuario (que está en mi directorio de inicio)?
Yo he tratado:
$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"
pero Bash me da Permission denied
. Sin embargo, el comando anterior funciona, por ejemplo, para: /etc/acpi/handler.sh
. ¿Porqué es eso?
Nota: el nombre de usuario no es root.
fuente
sudoedit /etc/rc.conf
ysudo -e /etc/rc.conf
abre vim, pero mi ~ / .vimrc no se carga. ¿Que estoy haciendo mal?export EDITOR=vim
primero: puede estar intentando ejecutarsevi
, lo que no sé si carga vimrc incluso cuando es vim.export EDITOR=vim
funcionó. Pensé que vi no está instalado en mi sistema y es solo un enlace simbólico a vim. GraciasPuede usar
-u
para decirle a vim qué archivo rc cargar. p.ejsudo vim -u ~user/.vimrc /etc/rc.conf
si escribir eso cada vez que necesita hacerlo es tedioso, haga un alias:
alias sudovim='sudo vim -u ~user/.vimrc'
Tenga en cuenta que
vim -u
puede hacer que los complementos o los archivos llamados rc fallen si cargan otros archivos relacionados con $ HOME - $ HOME ahora es el directorio de inicio de la raíz, no el del usuario. Esto se puede resolver con, por ejemplo, enlaces simbólicos en el directorio de inicio de la raíz o codificando rutas absolutas.fuente
alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc"
.sudo vim -S /home/user/.vimrc /etc/rc.conf
Esto es equivalente a:
sudo vim /etc/rc.conf
+:source /home/user/.vimrc
y puede ser alias también:
alias svim='sudo vim -S /home/user/.vimrc'
fuente