Use perfis diferentes com ZSH (em diferentes aplicativos de terminal)

1

Desejo usar diferentes perfis ZSH com diferentes aplicativos de terminal no macOS. Por exemplo, use um perfil com alguma configuração de prompt A no iTerm, use um perfil com um conjunto diferente de aliases no Terminal.app e use outro perfil com alguns scripts de inicialização dentro do terminal integrado no meu IDE (VS Code, IntelliJ etc) .

Os aplicativos de terminal permitem que os usuários especifiquem um comando "shells open with". Por exemplo, o padrão é /bin/zsh no meu caso. Eu tenho diferentes arquivos '.zshrc' configuração com as configurações corretas para diferentes aplicativos de terminal. Por exemplo, 'vscode.zshrc', 'iterm.zshrc', 'intellij.zshrc' e 'bestconfigever.zshrc'.

Como faço para isso?

    
por SGMoore 28.01.2018 / 12:17

1 resposta

1

Você pode usar ps -o comm= -p $PPID (obter o nome do comando para o processo pai) para ver qual programa invocou zsh.

Você também pode verificar a variável de ambiente TERM , mas muitos emuladores de terminal apenas configuram para xterm porque são compatíveis com o xterm. O que os terminais integrados do IDE definem TERM depende de quão funcional seu terminal é. Por exemplo, o Emacs usa TERM=dumb em M-x shell (linha de comando simples, onde o Emacs mantém o controle dos recursos da edição), mas TERM=eterm-color em M-x term (um emulador de terminal completo).

Alguns aplicativos definem variáveis de ambiente, por exemplo como observado por muru Iterm define ITERM_PROFILE . Tenha em atenção que, se lançar um emulador de terminal diferente a partir de uma shell, a shell no segundo emulador herda das variáveis da primeira. Portanto, você pode querer definir $ITERM_PROFILE apenas após verificar se o processo pai é Iterm.

Uma abordagem alternativa ou complementar é permitir que o programa de chamada faça o trabalho. Zsh lê seus arquivos de configuração a partir do diretório $ZDOTDIR , retornando ao seu diretório pessoal se ZDOTDIR não estiver definido. Você pode carregar, e. $HOME/.zshrc de um .zshrc em um diretório diferente, se você quiser aplicar as configurações padrão com algumas modificações.

    
por 28.01.2018 / 19:22