GNU 화면에 작은 문제가 있습니다. 내 RaspberryPi에서 실행되는 GNU 스크린 세션. 이제는 가끔 가입할 때 터미널을 클릭하면(Fedora에서는 터미네이터를 사용합니다) 이상한 문자가 쓰여지는 것을 볼 수 있습니다. 이 문자는 내 마우스 좌표에 따라 다릅니다. GNU 화면으로 전송된 클릭 이벤트를 잘못 디코딩한 것 같습니다. 이러한 문자에는 다음과 같은 문자가 포함됩니다.
kM#kM - Z3#Z3 - q-#q-
등…
처음에는 이것이 내 문제라고 생각하여 tty
RaspberryPi에서 새로운 GNU Screen 세션을 열었습니다. 전혀 문제가 없습니다. 두 세션을 모두
확인 stty -a
하고 차이점을 발견했습니다. 그런 다음 stty -g > ~/stty-good-settings
좋은 세션에서 하나를 수행하고 나쁜 세션에서 로드했지만 stty `cat ~/stty-good-settings`
(나중에 값을 비교하여 설정이 성공적으로 로드되었습니다) 진행 중인 다른 Screen 세션이 아닌 한 스크린 세션에서는 여전히 문제가 있습니다!
무슨 일이 일어나고 있는지 잘 모르겠습니다. 이것이 내 TERM
가치관(둘 다 동일) 때문이라면 내 tty
설정, 내 터미널 때문이라면...
답변1
달려갈 것~에GNU Screen은 xterm(또는 유사한)에서 실행되고 응용 프로그램 마우스 모드를 활성화하는지 확인합니다. (또는 GNU 화면에 연결하기 전에 해당 터미널에서 실행 중인 것, 어쩌면 ssh 이전에도 제대로 재설정되지 않았을 수 있습니다.) $TERM이 "screen"이 아니고 "xterm" 또는 "screen"인 경우, 이런 일이 일반적으로 발생합니다. xterm". 후자는 설치된 ncurses-term
Debian 시스템(및 파생 제품)에서 발생합니다. (호스트 및 raspi에서) 패키지를 지워보세요.
그렇지 않으면 reset
(이미 말했듯이) printf \\x033c
일시적으로 도움이 될 수 있습니다. 또는 물론 올바른 이스케이프 시퀀스를 사용하면 터미널 에뮬레이터에 마우스 모드를 비활성화할 수 있습니다.
답변2
reset
자리가 있지만 화면이 지워집니다. 당신이 달리고 있다면xterm
또는 아무것도호환 가능, 이를 사용하는 가장 짧고 덜 침습적인 방법은 다음과 같습니다.
printf '\033[?9l'
이는 명시적으로 명시되어 있지 않습니다.마우스 추적부분XTerm 제어 순서, 하지만xterm
열려 있는 모드를 모두 닫아 마우스 모드를 재설정(비활성화)할 수 있습니다. 이는 명명된 상수로 문서화되어 있습니다.
#define SET_X10_MOUSE 9
#define SET_VT200_MOUSE 1000
#define SET_VT200_HIGHLIGHT_MOUSE 1001
#define SET_BTN_EVENT_MOUSE 1002
#define SET_ANY_EVENT_MOUSE 1003
그리고 9
가장 짧습니다.
많은 응용 프로그램이 마우스 모드를 활성화합니다. 닫지 않고 종료하면 이상한 문자가 표시됩니다. ncurses 응용 프로그램이 마우스 모드를 끕니다.endwin
, 선의로 동작하는 모든 저주 애플리케이션에서 호출됩니다. 다른 응용 프로그램에서는 (n)curses를 사용하지 않거나 호출하는 것을 잊어버릴 수 있습니다 endwin
.
ncurses 애플리케이션은 기능을 테스트하여 xterm-mouse 모드를 사용할 수 있는지 확인합니다 kmous
(이것은screen
터미널 설명). 이는 이후 기능을 테스트하는 표준 방법이었습니다.1999년, 따라서 응용 프로그램이 실수로 마우스 모드를 켤 가능성이 줄어듭니다. 대신, 이는 애플리케이션이 해당 작업을 수행하는 것을 잊어버렸음을 나타냅니다.
screen.xterm
그런데 데비안에는 항목이 없습니다.ncurses-term
패키지(삭제하는 것보다 유지하는 것이 더 도움이 됩니다). 다음은 패키지의 모든 화면 관련 항목 목록입니다. screen
다양한 터미널의 동작 차이를 수정하는 데 가장 많이 사용됩니다 .
/usr/share/terminfo/s/screen.konsole
/usr/share/terminfo/s/screen-16color-bce
/usr/share/terminfo/s/screen-16color
/usr/share/terminfo/s/screen3
/usr/share/terminfo/s/screen.mrxvt
/usr/share/terminfo/s/screen-bce.Eterm
/usr/share/terminfo/s/screen-bce.gnome
/usr/share/terminfo/s/screen.xterm-xfree86
/usr/share/terminfo/s/screen-bce.konsole
/usr/share/terminfo/s/screen-bce.mlterm
/usr/share/terminfo/s/screen-256color-s
/usr/share/terminfo/s/screen-bce.mrxvt
/usr/share/terminfo/s/screen-bce.rxvt
/usr/share/terminfo/s/screen.linux
/usr/share/terminfo/s/screen.vte
/usr/share/terminfo/s/screen-bce.xterm-new
/usr/share/terminfo/s/screen.teraterm
/usr/share/terminfo/s/screen-16color-bce-s
/usr/share/terminfo/s/screen.xterm-r6
/usr/share/terminfo/s/screen+fkeys
/usr/share/terminfo/s/screen-256color-bce-s
/usr/share/terminfo/s/screen.mlterm
/usr/share/terminfo/s/screen-16color-s
/usr/share/terminfo/s/screen-bce.linux
/usr/share/terminfo/s/screen.gnome
/usr/share/terminfo/s/screen.rxvt
/usr/share/terminfo/s/screen2
/usr/share/terminfo/s/screen.Eterm
/usr/share/terminfo/s/screen.xterm-new