Como eu posso mudar a cor da minha pronta em zsh (diferente de texto normal)?

StackOverflow https://stackoverflow.com/questions/689765

  •  22-08-2019
  •  | 
  •  

Pergunta

Para reconhecer melhor o início eo fim da produção em uma linha de comando, eu quero mudar a cor da minha rápida, de modo que é visivelmente diferente da saída de programas. Como eu uso zsh, alguém pode me dar uma dica?

Foi útil?

Solução

Aqui está um exemplo de como definir uma linha vermelha:

PS1=$'\e[0;31m$ \e[0m'

A magia é a \e[0;31m (por sua vez, no primeiro plano vermelho) e \e[0m (desligar atributos de caracteres). Estes são chamados de seqüências de escape. seqüências de escape diferentes lhe dar resultados diferentes, de posicionamento absoluto cursor, a cor, para ser capaz de mudar a barra de título da janela do seu, e assim por diante.

Para mais informações sobre seqüências de escape, consulte a entrada da Wikipedia sobre os códigos de escape ANSI

Outras dicas

Coloque isso no ~/.zshrc:

autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "

Cores suportados:
Vermelho, azul, verde, ciano, amarelo, magenta, preto e branco (de este responder ), embora diferentes computadores podem ter diferentes opções válidas.

códigos de cores Surround (e quaisquer outros caracteres não imprimíveis) com %{....%}. Isto é para a quebra automática de texto para trabalho corretamente.

Além disso, aqui está como você pode chegar a este trabalho com o diretório corte de aqui .

PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "

Zsh vem com instruções coloridas embutidas. Tentar

autoload -U promptinit && promptinit

e lista, em seguida, prompt -l disponíveis prompts, previews -p fire o "fogo" prompt, -s fire define-lo.

Quando você estiver pronto para adicionar um add algo imediato como esta abaixo da linha de autoload acima:

prompt fade red

Eu não acho que é necessário o autoload -U colors && colors mais e pode-se simplesmente fazer:

PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "

para alcançar o mesmo resultado que o FireDude resposta . Veja a ZSH documentação para mais informações.

Eu descobri que, com zsh5 (o padrão no Debian Jessie), todas essas soluções obras:

  • $'\e[00m
  • $fg[white]
  • $fg{white}

Agora, eles têm um problema: eles vão mover o cursor, resultando em decalque feio quando tabulações (para auto-realização). A solução é simplesmente para cercar as sequências de escape com %{FOOBAR%}. Levei um tempo para descobrir isso. Para soluções de 2º e 3º módulo de carga colors é obrigatória. Para manter o legível primeira solução, basta definir variáveis ??para as cores que você usa.

homem zshall e procurar extensão imediata

Depois de ler as respostas existentes aqui, vários deles são conflitantes. Eu tentei várias abordagens em sistemas que executam zsh 4.2 e 5+ e descobriu que a razão estas respostas são conflitantes é que eles não dizem qual versão do ZSH eles são direcionados a. Diferentes versões usar uma sintaxe diferente para isso e alguns deles exigem várias autoloads.

Assim, a melhor aposta é provavelmente o homem zshall e procurar extensão imediata para descobrir todas as regras para a instalação específica do zsh. Nota nos comentários, coisas como "eu uso Ubuntu 11.04 ou 10.4 ou OSX" não são muito significativos, uma vez que não está claro qual versão do ZSH você está usando. Ubuntu 11.04 não implica uma nova versão do ZSH do que o Ubuntu 10.04. Pode haver qualquer número de razões que uma versão mais antiga foi instalado. Para essa matéria uma nova versão do ZSH não implica que sintaxe para uso sem saber qual versão do ZSH é.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top