마우스 클릭 시 Vim에서 이상한 삽입이 발생함

마우스 클릭 시 Vim에서 이상한 삽입이 발생함

저는 (Windows 7에서) 퍼티를 사용하여 쉘에 연결하고 Vim을 편집기로 사용하고 있습니다. Vim에서 mouse=a 옵션도 활성화했지만 Vim 창의 오른쪽을 클릭하면 이상한 동작(문자 및/또는 줄바꿈이 무작위로 삽입되는 등)이 나타납니다. 이상해지는 화면 너비 영역). 나는 천천히 그러한 행동에 익숙해지고 있지만 어떻게든 이 문제를 고칠 수 있는지 알고 싶습니다.

답변1

PuTTY는 80년대 중반 X10까지 거슬러 올라가는 xterm 프로토콜을 사용하여 마우스 이벤트를 보냅니다. 이는 행과 열 각각에 대해 단일 바이트로 마우스 좌표를 인코딩하며 여기에 32(공백 문자에 대한 ASCII 코드)가 추가됩니다. 이는 최대 223(255 - 32)까지의 좌표를 허용합니다.

불행하게도 인코딩은 터미널 제어 시퀀스에 적용 가능한 표준을 준수하지 않으며 애플리케이션이 이에 대해 특별한 허용을 하지 않는 경우 범위는 효과적으로 95(예: 127 - 32)로 추가로 제한될 수 있습니다. 특히 응용 프로그램이 제어 시퀀스 구문 분석 전에 UTF-8 디코딩을 수행하는 경우 95를 초과하는 마우스 좌표는 결국 잘못된 UTF-8로 처리됩니다.

작년에 xterm에서 이 문제를 해결하기 위한 여러 가지 시도가 있었습니다. 그 중 가장 좋은 것은 소위 SGR 1006 모드가 추가되었다는 것입니다.패치 #277, 무제한 좌표의 표준 호환 제어 시퀀스를 사용합니다. 이에 대한 지원은 다른 터미널 에뮬레이터와 애플리케이션에 천천히 확산될 것입니다.

답변2

이 문제는 다음에서 수정되었습니다.빔 7.3.632. 보다 :h sgr-mouse. 아니면 이것을 다음 항목에 넣으세요 ~/.vimrc:

set ttymouse=sgr

mouse_sgr컴파일 되지 않은 버전과 호환되려면 다음을 사용하세요.

if has("mouse_sgr")
    set ttymouse=sgr
else
    set ttymouse=xterm2
end

Vim 버전에 가 있는지 확인하려면 명령줄에서 mouse_sgr실행 하거나 Vim에서 를 입력 하고 를 찾으세요 .vim --version:version+mouse_sgr

관련 정보