Temporário .vimrc

7

Existe uma maneira de ler um arquivo .vimrc para apenas uma única sessão ssh? Ou seja, quando eu logar, realizo alguma operação para que o vim use /tmp/myvimrc até eu sair?

Eu não quero sobrescrever permanentemente o atual .vimrc, eu só preciso usar um conjunto diferente de configurações para a duração do meu login de vez em quando.

    
por Robert Gowland 18.11.2010 / 18:54

3 respostas

8

Suponha que você tenha esse outro conjunto de configurações em /tmp/myvimrc . Se a minha leitura de man vim estiver correta, você pode iniciar o vim com este conjunto de configurações usando o seguinte:

$ vim -u /tmp/myvimrc

Assim, para tornar isso uma opção para o restante da sessão, criaria uma função que define isso como um alias para vim . Assim, em bash eu colocaria algo assim no meu arquivo .bashrc :

function vimswitch {
    alias vim='vim -u /tmp/myvimrc'
}

Então, quando eu quisesse minhas novas configurações do vim, apenas executaria:

$ vimswitch

Observe que eu não armazenaria myvimrc em /tmp , pois isso poderia ser facilmente eliminado na reinicialização. Se você estiver usando um shell diferente de bash , isso ainda deve ser possível, mas a sintaxe pode ser um pouco diferente.

    
por 18.11.2010 / 19:03
9

Você pode usar a variável de ambiente VIMINIT para substituir o uso habitual do .vimrc , mantendo outras partes do processo de inicialização. VIMINIT deve ser configurado para um ou mais comandos ex (comandos "dois pontos"; use pipe ( | ) para separar vários comandos), não apenas o caminho para um arquivo de inicialização diferente.

VIMINIT='so /tmp/myvimrc'; export VIMINIT

vim whatever # uses /tmp/myvimrc, not ~/.vimrc

A principal diferença de usar -u é que o VIMINIT ainda permitirá as outras partes do processo de inicialização a ser usado (por exemplo, sistema vimrc , evim.vim (se aplicável), etc.)

    
por 18.11.2010 / 22:28
4

Quando você efetua login via ssh, o ssh define a variável $SSH_CONNECTION . Seu .bashrc poderia verificar esse var e, se estiver definido, definir o alias que você deseja:

if [ -n "$SSH_CONNECTION" ]
then
        alias vim='vim -u /tmp/myvimrc'
fi
    
por 18.11.2010 / 20:44