Eu tenho meus arquivos Vim personalizados ~/.vim
e configurações ~/.vimrc
. No entanto, às vezes eu tenho que editar alguns arquivos /etc
e tal.
Se eu iniciar o Vim assim:
$ sudo vim /etc/rc.conf
Perco minha configuração, pois o Vim usa a configuração padrão. Então: como posso executar o Vim com privilégios de root para editar arquivos sem perder as configurações do usuário (que estão no meu diretório pessoal)?
Eu tentei:
$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"
mas Bash me dá Permission denied
. No entanto, o comando acima funciona, por exemplo, para: /etc/acpi/handler.sh
. Por que é que?
Nota: o nome de usuário não é root.
fonte
sudoedit /etc/rc.conf
esudo -e /etc/rc.conf
ele abre o vim, mas meu ~ / .vimrc não é carregado. O que estou fazendo errado?export EDITOR=vim
primeiro - pode estar tentando executarvi
, o que não sei se ele carrega o vimrc, mesmo quando é vim.export EDITOR=vim
funcionou. Eu pensei que o vi não estivesse instalado no meu sistema e é apenas um link simbólico para o vim. ObrigadoVocê pode usar
-u
para dizer ao vim qual arquivo rc carregar. por exemplosudo vim -u ~user/.vimrc /etc/rc.conf
se digitar isso toda vez que você precisar, for tedioso, crie um alias:
alias sudovim='sudo vim -u ~user/.vimrc'
Observe que
vim -u
pode causar falhas nos plug-ins ou nos arquivos chamados rc se eles carregarem outros arquivos relacionados a $ HOME - $ HOME agora é o diretório inicial do root, não o usuário. Isso pode ser resolvido com, por exemplo, links simbólicos no diretório inicial do root ou por codificação de caminhos absolutos.fonte
alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc"
.sudo vim -S /home/user/.vimrc /etc/rc.conf
Isso é equivalente a:
sudo vim /etc/rc.conf
+:source /home/user/.vimrc
e também pode ser aliasado:
alias svim='sudo vim -S /home/user/.vimrc'
fonte