Utilize vimrc de um usuário diferente assim como pasta vim

5

Primeiro, para evitar um problema X / Y, declararei que o que eu realmente quero é:

  1. Execute o vim como usuário root.
  2. Instrua o vim a usar meu belo esquema de cores e todos os meus plugins.
  3. Faça tudo isso sem contaminar a pasta /root/.vimrc ou /root/.vim .
  4. Faça tudo isso sem executar sudo vim , esperamos que ...

Eu tenho minha própria conta em cada servidor linux com os dois arquivos a seguir.

  • %código%
    • Minha pasta com meus plugins, etc.
  • %código%
    • Meu arquivo dot vimrc

Aqui está minha primeira tentativa de execução com minhas configurações personalizadas do vim:

vim -u ~b/.vimrc
Error detected while processing /root/.vimrc:
line   33:
E185: Cannot find color scheme railscasts
line   82:
E117: Unknown function: ...
Press ENTER or type command to continue

No entanto, meu arquivo .vimrc está procurando por um plugin que só existe na minha pasta /home/b/.vim. Até agora eu sempre copiei minha própria pasta /home/b/.vim para a área do usuário root assim:

cp -r /home/b/.vim /root

Mas infelizmente isso contamina a pasta pessoal da conta raiz e eu quero parar de fazer isso (se possível). Alguém pode me dizer uma variável de ambiente, ou qualquer outro truque, para rodar com meu próprio ambiente COMPLETE vim (incluindo meus plugins, etc.) sem contaminar o root?

Qualquer ajuda é muito apreciada.

PS - Eu passei pela documentação do /home/b/.vim e tentei configurar o VIMRUNTIME VIMRC e outras variáveis de ambiente. Eles não me ajudaram, talvez eu estivesse fazendo algo errado ...?

    
por ire_and_curses 18.01.2013 / 20:30

4 respostas

6

Você pode adicionar seu .vim runtimepath ao seu arquivo .vimrc :

:set runtimepath=/home/b/.vim,$VIMRUNTIME

Isso faz com que o vim procure por plugins, cores etc. em /home/b/.vim primeiro e depois no local padrão (por exemplo, /usr/share/vim/vim72/ no debian squeeze).

Estou usando isso junto com um alias vim='vim -u /home/b/.vimrc' .

    
por 25.02.2013 / 23:02
4

Não sei ao certo o que você quer dizer com poluir, mas se você quer dizer apenas não ter arquivos duplicados, pode criar um link simbólico. É assim que mantenho minhas configurações de vim iguais para diferentes usuários.

Eu tenho as pastas .vimrc e .vim em /usr/local/etc/vim_settings , de propriedade do root, mas legíveis para todos os outros. Então, para cada usuário, faço o seguinte:

ln -s /usr/local/etc/vim_settings/vimrc /home/user/.vimrc ln -s /usr/local/etc/vim_settings/vim /home/user/.vim

O diretório é tecnicamente "limpo" dessa maneira e é simples o suficiente para configurar. Na verdade, faço isso por vários arquivos de configuração, portanto, quando mudo para um novo sistema, simplesmente copio minha pasta /usr/local/etc/ para a nova máquina e configuro os links.

    
por 18.01.2013 / 23:21
0

Minha aposta é que seu caminho de plug-in /home/b/.vimrc é relativo ao diretório inicial. Quando você faz login como root, esse caminho se torna relativo a /root em vez de /home/b . Você deve poder modificá-lo manualmente para o caminho absoluto.

    
por 18.01.2013 / 21:01
0

Se isso é apenas uma edição ocasional de um arquivo de configuração aqui e ali, eu colocaria o Vim na minha conta de usuário e usaria o truque :write !sudo tee % , de preferência na forma do robusto SudoEdit.vim - Edite os arquivos usando sudo, su ou qualquer outro plugin de .

    
por 26.02.2013 / 10:44

Tags