Caracteres de controle não são exibidos no meu terminal (por exemplo, quando eu pressiono “^ C”)

0

Meu terminal não exibe ^C quando pressiono CTRL-C no meu terminal. Eu tentei definir várias opções de STTY e não tenho certeza do que está errado.

Estou executando o Mac OSX 10.11.16 e esse fenômeno ocorre no aplicativo Terminal, bem como no emulador de terminal iTerm2. Não tenho certeza de onde estou indo errado. Aqui está a saída de stty -a :

speed 38400 baud; 39 rows; 171 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;
    
por Jrop 18.10.2016 / 21:37

1 resposta

3

Isso depende do software e não é consistente. Alguns shells apenas avançam o prompt, outros mostram o ^C desejado (e, possivelmente, saem), e outros irão emitir algo além de ^C :

%
%
% tclsh
tclsh> ^C
% clisp
[1]> 
*** - Ctrl-C: User break

[2]> 
% perl -MTerm::ReadKey -E 'ReadMode "raw"; $k=ReadKey(0);' \
  -E 'say "control+c" if $k eq "
%
%
% tclsh
tclsh> ^C
% clisp
[1]> 
*** - Ctrl-C: User break

[2]> 
% perl -MTerm::ReadKey -E 'ReadMode "raw"; $k=ReadKey(0);' \
  -E 'say "control+c" if $k eq "%pre%3"; ReadMode "restore"'
control+c
% 
3"; ReadMode "restore"' control+c %
    
por 18.10.2016 / 22:31