$ PATH no Vim não corresponde ao Terminal

9

Estou usando o MacVim e quando não o inicio do Terminal ( mvim ), seu $ PATH não inclui o que defini em meu .bash_profile. Parece apenas ter os valores padrão, /usr/bin:/bin:/usr/sbin:/sbin .

Estou executando o OS X 10.5.8. Mesmo se eu pudesse configurá-lo manualmente no meu .vimrc, tudo bem, embora eu prefira que ele seja puxado do mesmo lugar que o Terminal. Eu tentei seguir o que um site sugeriu, adicionando let $PATH += /blah/foo:/bar/etc sem sucesso.

Editar / Solução: Veja minha resposta abaixo. O MacVim tem uma opção para corrigir isso.

    
por donut 28.08.2009 / 15:56

10 respostas

12

O MacVim parece estar recebendo o $ PATH de uma maneira que ignora os arquivos de ponto personalizados de um usuário comum.

Eu não posso dizer porque eles preferem fazer assim, mas parece ser verdade. Nas preferências (na guia Avançado), você pode escolher "Iniciar processos do Vim em um shell de login", mas isso só melhora o $PATH ligeiramente para mim.

O melhor que posso dizer, o MacVim usa /usr/libexec/path_helper - que por sua vez usa os itens encontrados (1) no arquivo /etc/paths e (2) qualquer coisa adicional encontrada no diretório /etc/paths.d/ . Quaisquer alterações feitas no diretório base de um usuário (via .profile ou semelhantes) são ignoradas.

Em poucas palavras, você obtém os padrões OSX, além de todos os aplicativos que se adicionam a /etc/paths.d . (Por exemplo, o MacTex faz isso no meu sistema.) Portanto, se você quiser ajustar o caminho do MacVim, uma maneira seria adicionar um arquivo com itens a /etc/paths.d . (Eu não editaria diretamente o /etc/paths desde então você corre o risco de as alterações serem desfeitas pelas atualizações do sistema.)

Obrigado por me informar disso. Eu vou registrar um bug de lista de desejos no MacVim.

    
por 26.09.2009 / 13:41
7

BTW, a preferência "Iniciar processos Vim em uma shell de login" não está mais disponível no MacVim (pelo menos não v7.3). Vejo que o lançamento do MacVim a partir do Finder obtém o caminho errado, mas o lançamento de um shell (como "mvim") obtém o caminho correto.

    
por 05.04.2011 / 20:38
3

Não é originário de .bash_profile, mas você pode usar isso em seu .vimrc:

let $PATH=$PATH . ':/blah/foo'

Você precisa ter o: ou não será uma variável PATH correta.

    
por 26.09.2009 / 12:59
2

Eu não posso acreditar que não vi isso antes. Ok, eu posso acreditar. De qualquer forma, o MacVim vem com uma opção que resolve isso. Em Preferências apenas marque "Ativar processos do Vim em um shell de login". É isso, funciona. Snazzy Estúpido eu.

Ops

Eu acidentalmente escrevi essa resposta sem perceber que a Telemachus já havia me dado o resposta correta . Marcou a sua como a resposta.

    
por 22.10.2009 / 07:59
1

Este artigo do Mac Dev Center pode ser de algum usar.

    
por 01.09.2009 / 03:27
1

Eu não tive nenhum problema em adicionar um arquivo ao diretório paths.d. Eu adicionei um arquivo chamado mysql, cujo conteúdo era:

/ usr / local / mysql / bin [Retornar]

Em seguida, coloquei esse arquivo no diretório paths.d e alterei sua propriedade para root: wheel. Agora o diretório mysql é automaticamente adicionado à minha variável $ PATH.

Eu não investiguei totalmente, mas possivelmente (a) incluindo o [RETURN] no final da linha, e / ou (b) definindo a propriedade do arquivo para o root, pode ser necessário.

    
por 02.04.2010 / 08:18
0

Eu sei mais sobre unix do que sobre macs, então o seguinte conselho pode ou não funcionar. Tente colocar este seu arquivo .vimrc:

! source ~/.bash_profile

Isso pode fazer o truque, mas há uma pequena ressalva: o .bash_profile destina-se apenas uma vez. Pode conter alguns comandos não idempotentes (coisas que devem ser executadas apenas uma vez). Caso em questão:

$PATH += /blah/foo:/bar/etc

Quanto mais chamadas forem chamadas, maior e mais redundante será o $PATH . No entanto, se isso não for tão importante, a recomendação no unix seria colocar o comando único em ~/.bashrc e executar source ~/.bashrc do seu arquivo .vimrc .

    
por 28.08.2009 / 16:09
0

O MacVim fornecerá ~/.zprofile e /etc/profile , para que você possa colocar as configurações de PATH nele.

Veja link e esta questão no Stack Overflow .

(testado com o MacVim versão 7.3 (65)).

    
por 09.05.2014 / 22:30
0

Eu fiz uma pergunta muito semelhante No site do Vim StackExchange e postei uma resposta lá que funciona para mim!

    
por 30.03.2018 / 02:06
0

Eu encontrei isso hoje. O MacVim não tem mais a opção "login shell" e a edição de arquivos de todo o sistema para uma configuração específica do usuário é incompleta.

Aqui está uma solução usando apenas as opções do vim (consulte :help :! e :help shell ).

No seu ~/.vimrc adicione as linhas

set shell=/bin/bash
set shellcmdflag=-l\ -c

Isso torna bash seu shell padrão do (Mac) Vim e adiciona o -l flag (shell de login) aos comandos chamados com :!{cmd} . Ao executar :shell , o bash é iniciado como um "shell interativo que não é um shell de login".

Para que o $PATH funcione, você precisa defini-lo em ~/.bash_profile para :! e ~/.bashrc para :shell . (Veja INVOCATION em man bash )

ATUALIZAÇÃO: isso não era necessário no meu outro computador, por isso provavelmente há outra coisa que é a causa raiz.

    
por 17.05.2018 / 01:01