tty 구성과 관련된 그놈 터미널 문제

tty 구성과 관련된 그놈 터미널 문제

이상한 문제가 발생했습니다. 무슨 일이 일어나고 있는지 더 잘 설명하는 사진을 추가하겠습니다.

그놈 터미널의 tty 문제

보시다시피. 사용 git log하고 종료한 후(q 또는 Q 또는 :q 또는 ^C 누르기) 더 이상 명령을 사용할 수 없습니다.

인터넷 검색 끝에 이 명령을 찾았고 stty sane터미널이 수정된 것 같았습니다. 하지만 난 말할 수 없어또는어떻게그놈 터미널을 수리할 수 있나요?

내가 볼 수 있는 한, 수정 사항은 전후에 stty -a동일한 출력을 보여줍니다 .

디버깅을 시작하는 방법에 대한 아이디어나 제안이 있습니까?

VTE +GNUTLS의 버전 0.46.2를 사용하여 GNOME 3.22.2와 함께 gnome 터미널을 사용하고 있습니다.

편집하다:

답변해주셔서 감사합니다. 두 구성을 다시 살펴보았는데 차이점을 알 수 있었습니다.

chris@Gentoo ~ $ diff stty-bad stty-good 
4c4
< werase = ^W; lnext = <undef>; discard = ^O; min = 1; time = 0;
---
> werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
6c6
< -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl 
ixon -ixoff
---
> -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl 
ixon -ixoff
9c9
< isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -
tostop -echoprt
---
> isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop 
-echoprt

아직 확인해야 할 목록이 길고 옵션에서 최대한 많이 읽어보겠지만 답은 남아 있습니다...어떻게stty sane문제를 해결 했고무엇git log그게 진짜 문제가 아니기 때문이에요 . 시도했는데 git --no-pager log, 얼마 후 커밋을 인쇄한 후 ^C를 누르면 같은 일이 발생합니다...

편집 2:

글쎄요, 각 옵션을 전환한 후에는 루트가 -echo가변적인 것 같습니다. 하지만 그러면 질문은 하나밖에 남지 않습니다.기본 변수를 실행 git log하거나 변경합니다 .^Cecho어디근본 원인을 찾을 수 있나요? 힘내요? 덜(git log 호출기)? 아니면 그놈 터미널? 아니면 stty?

답변1

즉, git log제대로 정리되지 않은 것입니다... 단일 키 누르기를 기다리는 응용 프로그램(예: vi, less)은 단순함을 유지하기 위해 터미널을 에코를 억제하고 특수 제어 문자를 제거하는 등의 모드로 전환합니다. 하지만 정리하지 않으면 터미널을 사용할 수 없습니다.

stty sane명령은 단순히 터미널 모드를 미리 결정된 값으로 설정합니다. 편집 문자가 작동하지 않으면 수정할 수 있습니다( stty sane삭제 문자를 설정하는 일부 Unix 플랫폼 제외 @). 출력을 비교하기 위해 스크립트를 사용했지만 stty짧지 않습니다 ...

네 사진에는 적어도 한 가지 차이가 ​​있어 (알겠어)-icanon, 이는 라인 편집을 방해하기에 충분합니다). 참고로 나중에 본 내용은 이렇습니다 stty sane.

$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; 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

만약을 대비해 좀 더 자세히 살펴보는 것이 좋을 수도 있습니다.

관련 정보