요약

요약

저는 PuTTY, tmux 및 vim을 조합하여 사용하고 있습니다. PuTTY를 사용하여 SSH 연결을 연 다음 vim을 열면 마우스 스크롤이 예상대로 작동합니다. 그러나 tmux를 연 다음 tmux 내에서 vim을 열면 스크롤이 부분적으로만 작동합니다. 즉, 평소처럼 아래로 스크롤할 수 있지만 위로 스크롤할 수는 없습니다. 위쪽으로 스크롤하면 버퍼가 "위아래로" 움직이고 같은 위치에 그대로 유지됩니다. "set -g mode-mouse on"은 차이를 만들지 않는 것 같습니다(나중에 "tmux source-file ~/.tmux.conf"를 사용하여 conf를 다시 로드합니다). 어느 쪽이든 동일한 방식으로 작동합니다.

편집: 또한 터미널의 tmux에서는 스크롤이 예상대로 작동하지만 vim에서는 작동하지 않는 것으로 나타났습니다. vim에 있는 마우스/터미널과 관련된 옵션은 "set mouse=a" 및 "set t_Co=256"뿐입니다.

어떤 아이디어가 있나요?

답변1

요약

문제는 분명히 PuTTY에서 시작되지만 반드시 거기서 끝나지는 않습니다. 아래에는 PuTTY 문제에 대한 잠재적 수정 사항과 문제 전체에 대한 분석에 대한 링크가 있습니다.


문제 설명

구성

vimmouse=a스크롤, 선택, 커서 이동이 활성화된 경우

tmux, 마우스 기능이 활성화되지 않은 경우 tmux, 즉 다음과 같습니다.

set -g mode-mouse off
set -g mouse-select-pane off
set -g mouse-resize-pane off
set -g mouse-select-window off

사용 사례

일반적인 사용 사례는 다음과 같습니다.vim 내부에tmux. 스크롤을 비활성화하는 주요 이유 중 하나는 tmux와 사이의 부정적인 상호 작용을 피하는 것 입니다 .vimtmux

행동

다음은 PuTTY를 터미널 에뮬레이터로 사용할 때만 발생하며 gnome-terminal 또는 기타 테스트된 Linux 터미널 에뮬레이터에서는 재현할 수 없습니다.

마우스를 사용하여 '스크롤'을 시도할 때vim 내부에세션 중 tmux작업이 실패합니다. OP가 설명하는 것처럼, 각 스크롤 시도마다 반작용이 발생하는 것처럼 버퍼가 '위아래로' 흔들리는 것을 볼 수 있는 경우가 많습니다(자세한 내용은 아래 참조).

이는 기본적으로 OP의 설명과 동일하지만 내 설명이나 OP의 질문에서 뭔가 명확하지 않은 경우를 대비하여 요약했습니다.


잠재적인 솔루션 - PuTTY

PuTTY가 모든 ScrollDown/ScrollUp 이벤트와 함께 외부 ScrollDown 이벤트를 보내는 문제가 있는 것 같습니다. 이는 위로 스크롤하려는 각 시도가 취소되고 아무 일도 일어나지 않음을 의미합니다. 반대로 아래로 스크롤하면 각 스크롤 이벤트가 두 배가 됩니다. vim스크롤 동작을 보면 동작을 쉽게 확인할 수 있습니다.처음으로 밖에서(스크롤이 제대로 작동하는 경우 tmux) 및두 번째 내부( tmux여기서 위로 스크롤하는 것은 작동하지 않으며 아래로 스크롤하려고 한 번 시도하면 두 배만큼 스크롤됩니다).

다음 gmane 스레드에 따르면, 위에서 설명한 문제는 Putty-X의 패치로 해결되었습니다(https://github.com/atsepkov/putty-X/commit/bbcedf5a85ca1ccaa27005e7f7ebeb4c8a783b88):

gmane 스레드에 대한 링크:http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/5498.

메모:위 솔루션을 직접 검증하지 않았으므로 추가 정보는 gmane 스레드를 검토하세요.


추가 관찰

어디야정말tmux흥미로운 점은 이것이 이전 버전의 /를 사용하여 재현할 수 없는 새로운 문제라는 것입니다 vim. 동일한 버전의 PuTTY(0.63)를 사용하면 Ubuntu 13.10 시스템에서 문제가 적극적으로 나타날 수 있지만 Ubuntu 12.04 시스템에서는 문제가 나타나지 않습니다.

처음에는 문제가 시스템 구성 델타(예: ncurses-term 누락 또는 유사 항목 누락)를 가리키는 것처럼 보이지만 이러한 유형의 솔루션을 사용하여 해결 방법이 확인되지 않았습니다. 또한 동일한 문제에 대한 여러 보고서(이 스레드 포함)는 문제의 존재를 뒷받침하는 경향이 있습니다.

문제와 관련 소프트웨어 버전이 상호 의존적이기 때문에 문제가 단일 응용 프로그램에만 국한되지는 않는 것 같습니다. 회귀를 생성한 항목 의 최신 버전이 tmux/ '수정' 되었을 수 있습니다 . 또는 / 의 최신 버전이 PuTTY의 기존 문제를 노출했을 vim수도 있습니다 . 어느 쪽이든 완전히 해결하려면 추가 조사가 필요합니다. 조사에 도움이 될 수 있는 경우 아래에서 관련 버전 정보를 찾아보세요.tmuxvim


버전 정보

우분투 12.04vim버전 정보( 내부 에서 '위로 스크롤'tmux 공장):

  • tmux: 1.6-1
  • vim: 7.3.429-2

우분투 13.10vim버전 정보( 내부 tmux에서 '위로 스크롤'고장난):

  • tmux: 1.8-4
  • vim: 7.4.000-1

또한 주목할만한 점은 gmane 포스터가 tmux1.7 + vim7.3에서 문제를 관찰하지 못했다고 보고한 것입니다. 이 문제에 대한 Poster의 첫 번째 관찰은 tmux1.8 + vim7.4 에서도 나타났습니다 .


최소한 이 답변이 PuTTY에 전념하는(또는 고수하는) 모든 사람에게 이 문제를 해결하기 위한 옵션을 제공하기를 바랍니다. 그 외에도 누군가가 위의 추가 관찰 내용을 이해하고 주제를 적절하게 해결하는 데 도움을 줄 수 있기를 바랍니다.

답변2

우분투 16.04 설치에는 문제가 없습니다. tmux는 기본 apt-get 설치 버전입니다. Vim은 버전 8입니다. PuTTY는 버전 0.67입니다.

스크롤과 클릭은 모두 tmux 세션에서 호스팅될 때 vim 내에서 작동합니다.

~/.tmux.conf

set-option -g mouse on

마우스 제어를 위한 tmux 옵션이 이전 버전에서 변경되었습니다.

~/.vimrc

set mouse=a

주의하세요이 답변vim 플러그인이 문제의 원인일 수 있음을 시사합니다.

답변3

여기에 해당되는 모든 분들을 위해: 이 문제는 공식 PuTTY 웹사이트에서 다운로드할 수 있는 0.64 사전 릴리스에서 수정되었습니다.

답변4

이것이 스크롤이 제대로 작동하도록 할 수 있는 유일한 방법입니다.

놓다:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

파일에서:~/.tmux.conf

관련 정보