tmux에서 어떻게 스크롤합니까?


1293

방금 tmux를 사용하기 시작했고 정말 마음에 들지만 열린 버퍼 / 창 / 창 내에서 스크롤 할 수 있어야합니다. 마우스와 함께 작동하는지 여부는 상관하지 않습니다. tmux 매뉴얼 페이지를 검색 할 때 "scroll"이라는 단어의 두 인스턴스 만 표시되며 둘 다 복사 모드와 관련이 있습니다. 복사 모드로 들어가는 모든 오버 헤드없이 스크롤하는 방법이 있습니까?


8
어떤 오버 헤드에 관심이 있습니까? copy-mode기록을 보는 방법이며 선택적으로 내용을 복사하는 방법입니다.
Chris Johnsen

2
나를 위해 당신은 스크롤 모드로 f7을 누르고 종료하려면 q를 누를 수 있습니다
JohnMerlino

7
set -g mode-mouse on@chaiyachaiya의 답변에 따라 나에게 승리했습니다
Peter Berg

답변:


1568

Ctrl- b다음 [당신은 (. 예를 스크롤하는 일반 내비게이션 키를 사용할 수 있습니다 Up Arrow또는 PgDn). 누르면 q스크롤 모드가 종료됩니다.

또는 Ctrl- b PgUp를 눌러 복사 모드로 직접 이동하여 한 페이지 위로 스크롤 할 수 있습니다 (대부분의 시간이 원하는 것처럼 들립니다).

에서 vi모드 (아래 참조), 또한 사용 라인으로 / 아래 라인을 페이지를 스크롤 할 수 있습니다 Shift- kShift- j(당신이 스크롤 모드에서 이미 인 경우). 이동하지 않으면 커서가 페이지 대신 이동합니다.

매뉴얼 페이지 에서 발췌 :

tmux는 기본적으로 접두사 키 'C-b'(Ctrl-b)의 키 조합과 명령 키를 사용하여 연결된 클라이언트에서 제어 할 수 있습니다.

 The default command key bindings are:

[           Enter copy mode to copy text or view the history.

Function                     vi              emacs
--------                     --              -----
Half page down               C-d             M-Down
Half page up                 C-u             M-Up
Next page                    C-f             Page down
Previous page                C-b             Page up
Scroll down                  C-Down or C-e   C-Down
Scroll up                    C-Up or C-y     C-Up
Search again                 n               n
Search again in reverse      N               N
Search backward              ?               C-r
Search forward               /               C-s

게다가 더 많은. 명령 키로 묶여 C-b있으므로 페이지 업에 사용하는 경우 두 번 눌러야 C-b합니다. 반복 횟수를 사용하여 복사 모드 명령을 미리 지정하는 방법에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오.

Ctrl-를 사용하여 키 바인딩 모드를 설정 b한 다음

:set-window-option mode-keys emacs

또는 vi.


14
내 생각 C-b =이다 choose-buffer기본적으로. 당신은 C-b [( copy-mode기본적으로) 의미 합니까? 또한 C-b PageUp이전 페이지에서 직접 복사 모드를 시작 하는 데 사용할 수도 있습니다 (보거나 복사 할 대상이 현재 페이지에서 이미 스크롤되어 있음을 알 때 매우 유용합니다).
Chris Johnsen

4
맞습니다. 내 tmux에는 스크롤 모드가 없습니다. 당신은 할 필요가 C-b [복사 모드를 입력 한 다음 주변 스크롤 이맥스 또는 VI 키 바인딩을 사용 할 수 있습니다. 이것은 스크롤하는 것만으로도 많은 단계처럼 보이지만 tmux의 이점은 여전히 ​​이러한 성가심보다 중요합니다. 맥북에 있는데 PageUp 키가 없습니다 :-\. (또한, 어떻게 당신처럼 마크 다운으로 키를 만들까요, 데니스?)
chadoh

44
@chadoh : Macbook에서 다음을 시도하십시오. 홈 : fn-LeftArrow; 끝 : fn-RightArrow; 페이지 업 : fn-UpArrow; Page Down : fn- 아래쪽 화살표 키캡을 만들려면 :<kbd>Ctrl</kbd>
Dennis Williamson

5
맥북에서 fn + up은 터미널 앱으로 바로 이동하여 tmux를 절대로 누르지 않습니다.
Tyler

15
macbook에서 스크롤 모드에 있으면 fn + Shift + LeftArrow를 사용하여 페이지를 스크롤 할 수 있습니다.
Nick Hammond

306

글쎄, 당신은 스크롤을 설정하는 적절한 방법을 고려해야합니다 : tmux.conf

set -g mouse on        #For tmux version 2.1 and up

또는

set -g mode-mouse on   #For tmux versions < 2.1

그것은 창문과 창에서 나를 위해 일했습니다. 이제 tmux는 완벽합니다.

실용적인 tmux 에는 tmux.conf 파일에 대한 자세한 정보가 있습니다.


5
이 작업을 수행하면 마우스 클릭과 스크롤로 인해 tmux와 함께 사용하는 터미널의 프롬프트 영역에 횡설수설 문자가 인쇄됩니다. 어떤 아이디어?
ely

22
향후 tmux 마우스 사용자 : 입력하기 전에 다시 맨 아래로 스크롤하지 않아도되도록하려면 q스크롤 모드를 종료하십시오.
Jezen Thomas

15
마우스 스크롤이 잘 작동하지만 불행히도 더 이상 마우스를 사용하여 텍스트를 선택할 수 없습니다. Tilda 및 tmux 사용
friederbluemle

27
tmux 2.1 이상에서는 이것이로 바뀌고 set -g mouse on스크롤은 이전처럼 자동으로 복사 모드로 들어 가지 않습니다.
thrnio

25
중요 사항 :이 설정은 텍스트를 강조 표시하고 복사하지 않습니다. 이 기능을 유지하려면 Shift + 클릭을 사용하십시오.
Shadoninja

141

내 .tmux.conf에서 :

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

이것은 기본 xterm 스크롤을 가능하게합니다.


28
이것이 정확히 무엇을 설명 할 수 있습니까?
Ivo

11
나는 그것이 무엇을하는지 모르지만 순수한 천재입니다. 마지막으로 tmux 스크롤이 작동합니다.
스스로

5
이것은 OS X에서 나에게 작동하지 않습니다 ...
Nick

17

6
당신이 togdon의 대답에 대해 혼란스러워하는 경우이 체크 아웃 : superuser.com/questions/310251/... 당신은 단지 하나의 창에있는 경우, IMO,이 솔루션은 허용 대답보다 더 나은 작동합니다.
thameera

57

최신 tmux 2.1의 경우 마우스를 꼼꼼하게 스크롤하려면 정답입니다.

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

tmux를 다시 시작하는 것만으로는 충분하지 않습니다. 예를 들어 tmux를 다시 시작해야합니다. tmux kill-server && tmux

https://github.com/tmux/tmux/issues/145 에서 가져온


1
이것이 어떻게 받아 들여지지 않습니까?
Marcel

2
이 답변에서 "단순히 .tmux.conf를 다시로드하기에 충분하지 않음"에 대한 메모와 나를 위해 모든 tmux 세션을 종료하면 킬 서버가 작동했을 수 있습니다.
Colin D

1
이것이 어떻게 작동하는지 자세히 설명해 주시겠습니까?
oligofren

마우스를 클릭 / 스크롤하는 등의 경우 마우스 이벤트를 전달하는 것으로 나타납니다. 창이 간접 / 버퍼 상태에 있고 (복사 모드?) 마우스가 버튼을 누르거나 스크롤하는 등의 경우 마지막 부분은 먼저 간접 모드로 전환하여 직접 모드에서 스크롤하는 것을 다룹니다. 이러한 컨트롤이 아닌 경우 터미널은 이벤트를 기록 스크롤로 해석 할 수 있습니다. 그 말로, 나는 페이저와 Vim이 동시에 올바르게 스크롤되도록 할 수 있었는지 알지 못하고 많은 스 니펫을 시도했습니다.
John P

2
@chefarov-다른 답변에 대한 의견에 따라 Shift+click마우스 모드가 켜져있을 때이 작업을 수행 할 수 있습니다 .
Brendan Moore

14

제 경우에는 OSX에서 opt+ UpArrowopt+ 만 DownArrow있습니다.


@ fixer1234이 질문에는 Linux에 대한 언급이 전혀 없습니다. tmuxOS X에서도 사용할 수 있습니다.
slhck

@ slhck : 감사합니다. 너무 번쩍 거리는 눈; 난시가 시작되었습니다. 나는 tmux 태그를 리눅스 태그로 잘못 읽었습니다.
fixer1234

11

이것이 내가 일한 방식이며 그것이 기본 방식보다 낫다고 생각하는 이유입니다.

사용해 보려면 모든 코드 섹션을에 넣으십시오 ~/.tmux.conf.

1 단계. 프리픽스 키를 변경하여 1 비트에 도달하지 않아도됩니다. 'B'는 가까운 키이지만, 두 개의 검지 가운데 (각각 'F'와 'J')에 있습니다. 이 단축키는 tmux에서 필수적이므로 Cj는 제로 핸드 이동 (키를 누르는 것 제외)과 관련되므로 훨씬 좋습니다.

set -g prefix C-j
unbind C-b
bind C-j send-prefix

단계 2. 'S'(복사 모드로 들어가기)는 다음과 같습니다. 1) 닫기 (위와 같은 이유), 2) 다른 한편 (복싱의 1-2 또는 ls디렉토리에서 파일을 보는 명령 비교) ) 및 3)은 '스크롤'에 대한 니모닉으로 생각할 수 있습니다 (복사 모드는 스크롤 만하는 것이 아님).

bind s copy-mode

3 단계. 마지막 부분, 실제 스크롤. 'P'와 'N'은 이맥스 사용자에게이 목적에 익숙합니다. 그것들은 가깝고 직관적이며 (키보드에서 'P'는 'N'위에 있으며) 니모닉 ( "이전"및 "다음")입니다. Emacs에서 스크롤을 한 다음 tmux로 가면 바로 가기를 갖는 것이 좋습니다.

그러나 나는 'I'와 'K'가 더 낫다는 것을 알았습니다. 그것들은 'P'와 'N'보다 더 가깝고 직관적입니다 (같은 이유로). 니모닉에 관해서는-스크롤이 그렇게하는 일반적인 일이기 때문에 지름길은 곧 두뇌가 우회하여 근육 기억에 들어가기 때문에 실제로 중요하지 않습니다.

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down

7

나는이 세부 사항에 언급 된대로 이것을 위해 많은 것을 검색했으며 가장 적합한 해결책은 다음과 같습니다 .http : //tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

~ / .tmux.conf에 다음 바인딩을 추가하십시오.

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

위의 접근 방식을 구현하면 Prefix +를 사용하여 각 창을 먼저 확대 하여 창의 창에서 복사 할 수 있습니다 .

마우스 모드에서 누락 된 중요한 세부 사항 중 하나는 복사 할 영역을 선택하기 전에 Shift 를 누르는 것 입니다. 이것은 tmux 복사 버퍼 대신 기존 터미널 버퍼에 복사합니다. ( https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues )


7

tmux-better-mouse-mode 플러그인을 사용하여 대부분의 tmux 마우스 관련 문제를 해결 하는 것이 좋습니다 .

Tmux 2.1 이상 및 새로운 set-option -g mouse on접근 방식 과 호환됩니다 .


1
고마워, 이것은 나에게 가장 좋은 솔루션입니다. 그것은 내가 (내가 더 이상 필요하지 않습니다) 수동으로 추가 한 모든 내 마우스 휠 바인딩을 포함, 내가 아주 많이 원이 킬러 기능이 있습니다 : scroll-without-changing-pane조합과 함께 scroll-without-changing-pane하고 emulate-scroll-for-no-mouse-alternate-buffer. 이제 내 tmux 사용 경험이 훨씬 좋습니다.
selurvedu 2016 년

6

나를 위해 작동하는 유일한 것은 다음을 넣는 것입니다. ~/.tmux.conf

# 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"

(이 기능을 적용하려면 재부팅해야 할 수도 있습니다)

최신 정보:

Putty Connection> Data> Terminal-type의 설정을 "putty"(일부 형식 문제를 해결하는 데 사용)에서 "xterm"으로 변경하면이 솔루션의 작동이 중지됩니다.

업데이트 2 :

"퍼티"를 터미널 유형으로 사용하려면 다음을 사용하십시오. set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"


2
이것은 실제로 iPhone 앱의 스크롤 문제를 해결합니다.
NathaneilCapital

내가 시도한 최신은 더 이상 작동하지 않지만 이것이 효과가있었습니다. 이상한. set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
phocks

4

이것은 나를 위해 일했다 :

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf

2
버전 2.1 (2015 년 10 월 18 일) 이후 옵션은set -g mouse on
naoko

실제로 구성 파일의 전체 경로를 제공하려면 +1입니다. @chaiyachaiya의 대답은 그렇지 않으면 완벽 할 것입니다.
John McFarlane

1

Macbook / OSX Mojave의 FWIW ctrl+[:

  • up arrow 라인업
  • down arrow 줄을 위해
  • fn + up arrow 페이지 업
  • fn + down arrow 페이지 아래로
  • 보기 모드를 종료하려면 q

0

나를 위해 일한 유일한 것은 vim ~ / .tmux.conf입니다. ###에서 set -g mode-mouse vim과 함께이 설정을 삽입 한 다음 파일을 소싱하십시오. tmux 소스 파일 ~ / .tmux.conf


좀 더 명확하게하기 위해 서식을 사용할 수 있습니까? 편집 버튼을 사용하고 편집기에서 사용 가능한 옵션을보고 유용한 형식을 추가하십시오.
music2myear

-2
  • Ctrl+ A-스크롤을 시작합니다
  • Ctrl+ C-스크롤을 멈추려면

3
이 게시물은 너무 짧아서 질문에 유용하게 답변 할 수 없습니다. 이미 게시 된 답변에는 새로운 정보가 거의 없습니다. 스크롤 하는 방법 에 대해서는 아무 것도 말하지 않습니다 (복사 모드를 변경하는 방법 만). 또한 기본 명령 접두사 키 조합은 Ctrl-B( Ctrl-AGNU 화면의 기본값)입니다.
Anthony Geoghegan

1
이 답변의 작성자가 질문을 이해했는지 확실하지 않습니다. 도움이되지 않고 잘못되었습니다.
Vik

2
스크롤을 너무 오래 멈추는 방법을 찾고 있습니다. 지적 해 주셔서 감사합니다!
PERR0_HUNTER
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.