tmux 없이 쉘을 실행할 때 (Gnome Terminal에서) tmux 에서 마우스 스크롤이 작동하지 않습니다 . tmux가 위 / 아래 키를 누른 것처럼 마우스 스크롤 이벤트를 보내는 것 같습니다. 그러나 쉘 출력 기록 을 통해 스크롤하고 싶습니다 . tmux를 이와 같이 작동시키는 방법이 있습니까?
참고 : 키보드로 스크롤하는 방법을 알고 있습니다 ( 여기 다른 질문 덕분에 ).
두 가지 버전의 tmux에서 마우스 스크롤을 시도했습니다.
tmux 없이 쉘을 실행할 때 (Gnome Terminal에서) tmux 에서 마우스 스크롤이 작동하지 않습니다 . tmux가 위 / 아래 키를 누른 것처럼 마우스 스크롤 이벤트를 보내는 것 같습니다. 그러나 쉘 출력 기록 을 통해 스크롤하고 싶습니다 . tmux를 이와 같이 작동시키는 방법이 있습니까?
참고 : 키보드로 스크롤하는 방법을 알고 있습니다 ( 여기 다른 질문 덕분에 ).
두 가지 버전의 tmux에서 마우스 스크롤을 시도했습니다.
답변:
출력 기록 내에서 스크롤하려면 ^b+ [
를 사용합니다. 그런 다음 M + V를 사용하여 페이지를 올리거나 ^ V를 사용하여 페이지를 내릴 수 있습니다. 당신은 실제 사용할 수 있는지 모르겠어요 PgUp및 PgDown하지만. 터미널이이 키를 tmux에 보내지 않습니다. 대신 tmux 히스토리가 아닌 자체 스크롤됩니다.
복사 모드를 종료하려면 ESC를 누르십시오
이 모드 (복사 모드)에서 마우스를 사용하려면 ^b+ :
를 누르고 다음을 입력하십시오.
setw -g mouse on
참고 : tmux <2.1에서 옵션 이름 mode-mouse은이며mouse
이제 복사 모드로 변경하면 마우스를 사용하여 스크롤 할 수 있습니다. tmux를 실행할 때마다로드되도록이 명령을 ~ / .tmux.conf에 넣을 수 있습니다.
업데이트 : tmux 1.5부터이 옵션을 사용하면 스크롤 휠을 사용하여 자동으로 복사 모드로 전환하고 tmux 스크롤 백 버퍼를 다시 스크롤합니다. 먼저 Ctrl-B+ [더 이상 명중 할 필요가 없습니다 . 프롬프트로 다시 스크롤하면 복사 모드가 자동으로 종료됩니다.
set -g mouse onmacOS tmux 2.1에서 나를 위해 일했다
Tmux 2.1의 일부 변경 사항이 있습니다.
마우스 모드가 다시 작성되었습니다. 더 이상 다음 옵션이 없습니다.
대신 마우스 지원을 완전히 켜는 'mouse'옵션이 있습니다.
그건
set -g mouse on
# to enable mouse scroll, see https://github.com/tmux/tmux/issues/145#issuecomment-150736967
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
bindTMUX 2.3에 더 이상 필요하지 않는 것
set -g mouse on. 이전 의견이 맞습니다. 바인드는 더 이상 필요하지 않습니다.
tmux (1.5)의 현재 버전에서는 모드 마우스 옵션을 간단하게 설정하고 마우스 휠로 스크롤 할 수 있습니다.
mode-mouse [on | off]
Mouse state in modes. If on, the mouse may be used to
enter copy mode and copy a selection by dragging, to
enter copy mode and scroll with the mouse wheel, or to
select an option in choice mode.
내 .tmux.conf에서 :
set-window-option -g mode-mouse on
C-A PgUp으로 그렇게하기 위해 누르십시오 . 페이지 업 키를로 직접 바인딩 할 수 있습니다 tmux bind-key -n PPage copy-mode -u. 로컬 터미널에서 바인딩을 해제하면 shift + pageup에도 비슷한 기능이 작동합니다.
.tmux.conf에서 이것을 시도하십시오
# Make mouse useful in copy mode
setw -g mode-mouse on
# Allow mouse to select which pane to use
set -g mouse-select-pane on
# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
# Scroll History
set -g history-limit 30000
# Set ability to capture on start and restore on exit window data when running an application
setw -g alternate-screen on
# Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access.
set -s escape-time 50
http://brainscraps.wikia.com/wiki/Extreme_Multitasking_with_tmux_and_PuTTY 에서 가져온
escape-time설정 +1
누군가 (내가 잃어버린 출처에서) 다음에 다음을 추가 할 것을 제안했습니다 ~.tmux.conf.
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
어떻게 작동하는지 또는 무엇을하는지 전혀 알지 못하지만 이제는 tmux의 복사 모드로 들어 가지 않고도 tmux 세션 내에서 마우스 휠로 스크롤 할 수 있습니다. 난 그냥 바퀴와 BAM을 스크롤! 효과가있다. 나는 terminal.app을 사용하고 있지만 OP가 특별히 사용하기위한 대답을했던 것을 기억합니다 gnome-terminal.
less. less내부 tmux에 로드 하면 마우스 스크롤이에서 열린 파일을 스크롤하지 않습니다 less. 터미널 전체를 스크롤합니다. 이상하게도 설정 vim내부 tmux에서 예상대로 작동 합니다.
setw -g mode-mouse on마우스 휠을 사용하여 복사 모드 스크롤 백을 수행 하는 옵션으로 대체되었습니다 .
tmux 2.1에는 새로운 마우스 바인딩이 도입되었습니다.
나는 오늘이 묶음을 썼습니다. Vim은 생 마우스 휠 코드를 해석 할 수 있기 때문에 Vim에 있지 않을 때 마우스 휠을 화살표에 매끄럽게 바인딩합니다.
즉, 마우스를 사용하여 여러 매뉴얼 페이지 및 화살표 키를 허용하는 모든 것을 볼 수 있습니다. if애플리케이션에 더 많은 로직을 구현하기 위해 필요에 따라 로직을 확장하고 연결할 수 있습니다.
bind -n WheelUpPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Up"
bind -n WheelDownPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Down"
이 새로운 휠 바인딩 기능을 사용하면 마우스 휠을 스크립팅하여 원하는 상황에 맞는 동작을 수행 할 수 있습니다.
그놈 터미널은 제한된 "일반"스크롤 조건에서 마우스 스크롤 이벤트를 위 / 아래 화살표 키로 변환하는 깔끔한 트릭을 수행합니다. 당신이 사용하는 텍스트를 볼 때 예를 들어, less(당신이 사람을 읽을 때이 특히 발생), 당신은 사용하여 콘텐츠를 스크롤 할 수 있습니다 j, k및 화살표 키를. 그러나 또한 , 함께 gnome-terminal, 당신은 할 수 마우스 스크롤로 그, 언급 트릭에 감사합니다.
따라서 tmux터미널의 "캡처 링" less과 같은 방식으로 작동합니다. 똑같은 메커니즘 gnome-terminal이 있습니다 : 마우스 스크롤은 위 / 아래 화살표 키 누름으로 변환됩니다.
프로필 설정에서이 기능을 끄고 어떤 상황에서도 정기적으로 스크롤 할 수 있습니다. "스크롤"탭에서 마지막 확인란의 표시를 해제하십시오
.
gnome-terminal트리플 ^[[A및 ^[[B마우스 스크롤 전송이 중지됩니다 . 이 글은 좋네요 tmux(더 추한 ^[[A^[[A^[[A일부 프로그램에서, 아니 추악한 명령 역사 스크롤),하지만 지금은 less마우스 스크롤에 스크롤을 중지합니다.
i캐릭터에 의해 추측 )
https://github.com/NHDaly/tmux-better-mouse-mode
최신 tmux를위한 구성 및 기능이 풍부한 마우스 제어 구현. 추천.
아마도 사용하고 싶을 것입니다
set -g @emulate-scroll-for-no-mouse-alternate-buffer "on"
그것도.
다른 답변의 바인딩 아이디어를 결합하여 꽤 만족스러운 스크롤 동작을 얻을 수 있습니다. 터미널에서 vim 변경 사항을 복사 모드로 자동 변경하고 맨 아래에 도달하면 종료합니다.
내 코드 :
bind -n WheelUpPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Up Up Up Up" "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"
bind -n WheelDownPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Down Down Down Down" "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"
grep -e 'man'부분에서 스크롤하기 위해 화살표 키가 필요한 다른 명령을 추가 할 수 있습니다
보내기 키를 여러 번 추가 했으므로 마우스 휠의 한 틱이 한 번에 4 줄씩 스크롤됩니다.