Qual é o equivalente de “stty -echo” para zsh?

2

Eu posso esconder o que está escrito em um terminal com bash

stty -echo

No entanto, isso não funciona para o zsh: executar este comando não altera a saída de

stty -a

Qual é o comando equivalente de stty -echo para zsh?

    
por user123456 07.02.2017 / 09:12

2 respostas

2

Acho que zsh redefine o terminal ao retornar ao prompt. O que é realmente muito útil, pois impede que você fique preso no prompt com um terminal quebrado e tenha que lançar feitiços estranhos para restaurar a sanidade.

De acordo com uma discussão na lista de discussão , você pode fazer com que isso não aconteça de desativar a edição de linha completamente com unsetopt ZLE .

    
por 08.02.2017 / 22:47
2

Por padrão, a configuração do terminal associada à sessão atual é congelada, portanto, a maioria das configurações feitas com stty é efêmera.

De acordo com a documentação do zsh, você pode descongelar seu terminal com este comando

ttyctl -u

e reverta para o modo normal congelado com:

ttyctl -f 

No modo não congelado, as configurações de stty devem persistir. Não parece ser o caso com -echo .

No entanto, se sua meta for desativar temporariamente os caracteres de eco para um único comando ou um programa externo, o comportamento padrão poderá ser suficiente:

$ stty -echo;stty -a;read foo
speed 38400 baud; rows 44; columns 165; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
$ echo $foo
abc

Observe que stty informa a configuração -echo e os caracteres digitados em resposta ao comando read não foram reproduzidos na tela.

    
por 08.02.2017 / 23:21

Tags