Inicie o Vim como meu usuário com privilégios de root

8

Eu tenho meus arquivos Vim personalizados em ~/.vim e configurações em ~/.vimrc . No entanto, às vezes eu tenho que editar alguns arquivos em /etc e tal.
Se eu começar o Vim assim:

$ sudo vim /etc/rc.conf

Eu perco minha configuração, já que 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 meu usuário (que estão no meu diretório home)?
Eu tentei:

$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"

mas o Bash me dá Permission denied . No entanto, o comando acima funciona, por exemplo, para: /etc/acpi/handler.sh . Por que isso?

Nota: nome de usuário não é raiz.

    
por rubik 30.08.2012 / 11:21

3 respostas

11

Em vez de sudo vim /etc/rc.conf use sudoedit /etc/rc.conf ou sudo -e /etc/rc.conf . Você pode precisar definir a variável de ambiente EDITOR para vim. Isto irá executar o próprio vim como o usuário normal, usando sua configuração normal, em uma cópia do arquivo que será copiado de volta quando você sair.

    
por 30.08.2012 / 15:19
5

Você pode usar -u para informar ao vim qual arquivo rc deve ser carregado. por exemplo,

sudo vim -u ~user/.vimrc /etc/rc.conf

se digitar isso toda vez que você precisar fazer isso for tedioso, crie um alias:

alias sudovim='sudo vim -u ~user/.vimrc'

Note que vim -u pode fazer com que plugins ou arquivos rc falhem se eles carregarem outros arquivos em relação a $ HOME - $ HOME agora é o diretório home de root, não o usuário. Isto pode ser resolvido com, e. links simbólicos no diretório inicial do root ou por caminhos absolutos codificados.

    
por 30.08.2012 / 12:07
0

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 ter um alias:

alias svim='sudo vim -S /home/user/.vimrc'

    
por 29.11.2016 / 18:04