(G) VIM usa um $ PATH diferente do meu sistema

8

Como o Ubuntu não fornece pacotes atualizados para o TeXLive, eu o instalei manualmente. No entanto, alguns programas precisam do TeXLive como dependência. Então, o que fiz foi instalar o pacote TeXLive a partir dos repositórios Ubuntu, além disso, que é a versão de 2009. Eu então mudei meu $ PATH para conter a versão 2011 instalada manualmente, para que os programas sempre apontem e usem a versão mais recente do TeXLive. Até agora, isso funcionou bem.

Mas eis o seguinte: quando mudei para o VIM para editar meus arquivos LaTeX, notei, depois de muita dor de cabeça, que o VIM "vê" apenas o TeXLive2009! Veja esta captura de tela, à esquerda é o VIM, à direita, um terminal:

Versão LaTeX no VIM

Em seguida, verifiquei o que o $ PATH VIM está usando e, como se vê, está usando um diferente, que NÃO aponta para o TeXLive 2011. Veja esta captura de tela:

Caminho no VIM e Terminal

VIM:

:! echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Terminal:

echo $PATH
/usr/local/texlive/2011/bin/x86_64-linux:/usr/local/texlive/2011/bin/x86_64-linux:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Você tem alguma idéia de como corrigir isso, para que meus plugins do LaTeX possam usar o TeXLive 2011, talvez fazendo o VIM usar o mesmo $ PATH? Qualquer ajuda seria muito apreciada!

Ingo
fonte
4
Onde você mudou seu CAMINHO?
enzotib 30/10/11

Respostas:

5

Parece que você alterou a $PATHvariável em um dos arquivos de configuração do shell, mas você iniciou o VIM a partir de um ícone ou de uma entrada do menu da área de trabalho. As coisas que você define nos arquivos de configuração do shell (como ~/.bashrcou /etc/profile) afetam apenas os aplicativos iniciados no shell .

Geralmente, existem duas abordagens possíveis para esse problema:

  • local : altere a maneira como o VIM é iniciado.

[editar]

  • por usuário : modifique o ambiente do usuário em ~/.profile.

[/editar]

  • global : modifique o ambiente global.

A solução local é a mais segura (pois afeta apenas um programa), mas como você já estragou o sistema instalando duas versões simultâneas de um pacote de software, não tenho certeza se isso vai assustá-lo. De qualquer forma, você pode fazer isso modificando a .desktopentrada do VIM no ambiente da área de trabalho e alterando o comando associado de algo como gnome-terminal -c vimpara PATH=(yourPathGoesHere) gnome-terminal -c vim.

O método global é modificar a PATHvariável em um arquivo em /etc/env.d/. Deve ser o suficiente para criar um arquivo /etc/env.d/99-my_path_modcontendo PATH=(yourPathGoesHere):$PATH. Você precisará reinicializar para que isso tenha efeito (bem, a reinicialização pode ser evitada alternando o nível do init, mas é muito mais fácil assim).

[editar]

A solução por usuário pode ser a melhor e, como eu vejo agora, pode ser chamada "da maneira correta". Conforme apontado por Gilles (abaixo), o ~/.profilearquivo é onde as variáveis ​​de ambiente para todas as suas sessões de login devem ser definidas.

rozcietrzewiacz
fonte
Obrigado, seguindo a sua solução, o mais fácil provavelmente é chamar o gvim a partir de um terminal. Isso funciona bem!
Ingo
Esta resposta é enganosa e parcialmente incorreta. Não há necessidade de alterar nada no nível do sistema; em vez disso, @Ingo, a solução mais simples é definir~/.profile e nunca inserir variáveis ​​de ambiente~/.bashrc . Fazer as coisas corretamente não é difícil e evitará problemas futuros .
Gilles 'SO- stop be evil'
@ Gilles Eu admito que não percebi o papel principal de ~/.profile, então minha resposta pode ser enganosa. Mas em que parte isso está incorreto?
rozcietrzewiacz
Ok, tecnicamente, acho que a única coisa incorreta são “geralmente duas abordagens possíveis”: há uma terceira abordagem comum e preferível. Apresentar-se /etc/profilecomo um arquivo de configuração do shell é tecnicamente verdadeiro, mas enganoso (é um arquivo de configuração escrito no shell, não um arquivo de configuração do shell). Não mencionar ~/.profileé uma grande omissão, o que por si só torna sua resposta "não útil".
Gilles 'SO- stop be evil'
Quando abro o meu /etc/profile, é isso que vejo no topo . Então, pelo menos no meu sistema (Gentoo), o arquivo pode ser chamado de "arquivo de configuração do shell".
rozcietrzewiacz
2

Onde você mudou seu usuário PATH? Normalmente, eu definiria ~/.profileonde, onde deve ser escolhido pelo seu gerenciador de sessões X (ou seja, no próximo login do X) e também se aplicará a todos os aplicativos em sua sessão X (como seu painel / área de trabalho de onde você inicia o gvim) .

patrikf
fonte