Midnight Commander는 마우스 휠 사용에 대해 혼란스러워합니다.

Midnight Commander는 마우스 휠 사용에 대해 혼란스러워합니다.

나는 mc그것을 정기적으로 사용하고 있으며 수년 동안 완벽하게 작동했습니다. 얼마 전(몇 주?) mc마우스 휠과 혼동하여 다음과 유사한 ANSI 이스케이프 시퀀스를 화면에 인쇄한 것 같습니다.

[97;14;10M[96;15;10M[97;16;10M[96;16;10M[96;16;10M

3자리 숫자가 포함된 ANSI 시퀀스를 찾을 수 없습니다.중간 사이즈하지만. 97이런 뜻인 것 같아요 roll up, 96이런 뜻인 것 같아요 roll down. 다른 숫자는 미스터리입니다.

또한 이상한 점은 이러한 오류가 예측할 수 없으며 사용 중 언제든지 발생할 수 있다는 것입니다 mc. 그리고 낯선 사람도 있습니다. mc한 터미널에서 하나를 열면 제대로 작동하지만 다른 터미널에서는 하나가 mc실패합니다.

마지막 것은 결함이 공통 요소가 아니라는 것을 나타내는 것 같습니다(아마 gpm그럴 수도 있습니다).

저는 Slackware 14.2, urxvt(v9.22) 및 am$ 광마우스를 사용하고 있습니다. 어디를 봐야하는지 아는 사람 있나요? 나도 달려 mc갔고 스크롤링이 rxvt비교해 보면 약간 느린 것 같았습니다 urxvt.

답변1

이것은 urxvt의 1015 확장 마우스 좌표입니다.http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking(BTW, 두 번째와 세 번째 숫자는 셀 좌표입니다). 이 프로토콜 확장의 주요 목적은 223 이상의 마우스 좌표를 지원하는 것입니다.

또 다른 더 유리한 확장은 xterm의 SGR 1006 모드로, urxvt 확장의 일부 단점 없이 동일한 문제(및 그 이상)를 해결합니다. Xterm의 1006 모드는 urxvt의 1015 모드를 더 이상 사용하지 않습니다.

그러나 rxvt-unicode(urxvt라고도 함)는 내가 아는 유일한 터미널 에뮬레이터로 마우스 이벤트를 지원합니다.아니요이 확장을 지원하세요. 2012년 1월에 저자와 이야기를 나눴지만 그는 내가 이해할 수 없는 이유로 이 모드 구현을 거부했습니다. 어쩌면 누군가가 다시 시도해야 할 수도 있습니다. urxvt에는 몇 줄의 간단한 코드만 필요합니다.

Midnight Commander는 이 새롭고 향상된 xterm 확장을 구현하며 더 이상 urxvt 확장을 구현하지 않습니다. 자세한 내용은 MC티켓을 참고하세요2662그리고2956.

즉, 일반적으로 mc는 urxvt가 지원하지 않는 확장을 요청해야 하므로 확장을 사용하지 않고 계속 진행합니다(그리고 마우스는 열 223까지만 작동합니다).

귀하의 경우, 이 마우스 확장이 활성화된 상태에서 응용 프로그램이 비정상 종료를 수행할 수 있으며, 이는 mc를 혼란스럽게 합니다(수신하는 내용을 이해하지 못함). mc를 종료한 다음 실행하여 이 확장을 비활성화 echo -ne '\e[?1015l'하고 마지막으로 mc를 다시 시작할 수 있습니다.

불행하게도 urxvt-9.21에서 이 명령은 reset실제로는 비활성화되어야 하지만 이 확장을 비활성화하지 않습니다. 나는 이것이 버그라고 믿습니다.

이 반복되는 문제가 정말로 귀찮다면 위의 이스케이프 시퀀스를 프롬프트에 포함시키거나 1006 확장을 지원하는 다른 에뮬레이터로 전환하는 것이 좋습니다. 또는 종료 시 이 확장 기능을 활성화한 상태로 유지하는 응용 프로그램을 추적하여 수정하세요.

답변2

내가 엉망으로 만든 부분은 bash_profile에 내보내기 TERM=xterm을 추가하는 것이었습니다. 나쁜 실수. 이 방법으로 터미널의 기본 TERM 변수를 재정의합니다. 그러지 마세요.

이로 인해 urxvt에서 cmus 및 mc의 마우스 제어가 완전히 엉망이 되었습니다. TERM=...은 더 이상 전역으로 내보내지지 않으며 이제 삭제했습니다. 모든 것이 다시 정상으로 돌아왔습니다.

다른 문제에 대해서는 TERM을 변경하여 해결하려고 했습니다. 이제 로컬에서 필요한 경우에만 적용됩니다. alias vim='TERM=xterm vim' 이렇게 하면 tmux의 vim 색상이었던 원래 문제가 해결되었습니다.

관련 정보