Zsh: altera a cor do comando vared -p

1

Eu tentei:

vared -p '"$(print \"\e[1;31test\")" something' -c tmp

Eco de saída "$(print \"\e[1;31test\")" something

Mas eu quero mudar a cor de test word aqui. Como conseguir?

    
por Tuyen Pham 14.09.2018 / 08:13

2 respostas

3

O argumento para -p compreende a expansão rápida, por isso é apenas:

var=; vared -p '%B%F{red}something%f: ' var
  • %B : bold ( %b para parar em negrito)
  • %F{red} : primeiro plano vermelho ( %K para bacKground).
  • %f : restaurar cor de primeiro plano padrão.

Fazendo:

vared -p $'\e[1;31msomething: ' var

que seria equivalente a vared -p "$(printf '\e[1;31msomething: ')" (corrigido da versão da sua pergunta) seria uma má idéia, já que enganaria o posicionamento do cursor de zle , deixando-o pensar que o prompt tem 18 colunas de largura, enquanto na verdade tem apenas 11 colunas de largura, pois \e[1;31m não é visível.

    
por 14.09.2018 / 12:00
0

Pode conseguir isso usando aspas duplas após -p e carregar colors module de zsh.

    
por 14.09.2018 / 11:34

Tags