Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I just started using tmux, and I really like it, but I need to be able to scroll within the buffers/panes/windows I have open. I don't care if it works with the mouse or not. When I search the tmux man page, I find only two instances of the word "scroll" even showing up, and both have to do with copy mode. Is there a way to scroll without all the overhead of entering copy mode?

share|improve this question
5  
What overhead are you concerned with? copy-mode is the way to view history (and optionally copy stuff out of it). –  Chris Johnsen Nov 11 '10 at 5:48
    
for me you can press f7 for scroll mode and q to quit –  JohnMerlino Jul 25 at 14:56

4 Answers 4

up vote 390 down vote accepted

Ctrl-b then [ then you can use your normal navigation keys to scroll around (eg. Up Arrow or PgDn). Press q to quit scroll mode.

Alternatively you can press Ctrl-b PgUp to go directly into copy mode and scroll one page up (which is what it sounds like you will want most of the time)

You can also scroll up/down line by line using Shift-k and Shift-j (if you're already in scroll mode).

share|improve this answer
9  
I think C-b = is choose-buffer by default. Did you mean C-b [ (which is copy-mode by default)? Also you can also use C-b PageUp to start copy-mode directly on the previous page (very handy when you know what you want to view/copy has already scrolled off the current page). –  Chris Johnsen Nov 11 '10 at 5:55
2  
Correct, my tmux has no scroll-mode. You need to C-b [ to enter copy mode and then use either the emacs or vi key-bindings to scroll around. This seems like a lot of steps just to scroll, but the benefits of tmux still outweigh these annoyances. I'm on a macbook and there is no PageUp key :-\. (Also, how do I make keys with markdown like you did, Dennis?) –  chadoh Nov 11 '10 at 17:11
16  
@chadoh: Try these on your Macbook: Home: fn-LeftArrow; End: fn-RightArrow; Page Up: fn-UpArrow; Page Down: fn-DownArrow. To make keycaps: <kbd>Ctrl</kbd> –  Dennis Williamson Nov 11 '10 at 18:43
2  
on macbook, the fn+up goes straight to terminal app and never hits tmux –  Tyler Apr 11 '11 at 17:57
9  
On a macbook if you're in scroll mode you can use fn+Shift+LeftArrow to scroll up a page. –  Nick Hammond May 18 '13 at 17:51

From my .tmux.conf:

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

This enables native xterm scrolling.

share|improve this answer
12  
Can you explain what this does exactly? –  Ivo Oct 31 '11 at 6:25
5  
I don't know what it does, but it is pure genius. Finally, tmux scrolling works, yay! –  oneself Nov 28 '11 at 21:26
2  
This doesn't work for me on OS X... –  Nick Apr 17 '12 at 13:56
9  
Solution: gist.github.com/1297707 –  Nick Apr 17 '12 at 15:25
2  
Check this out if you're confused about togdon's answer: superuser.com/questions/310251/… IMO, if you have only a single pane, this solution works better than the accepted answer. –  thameera Apr 16 '13 at 7:48

Well, you should consider the proper way to set scrolling: add in your tmux.conf

set -g mode-mouse on

It worked for me in windows and panes. Now tmux is just perfect.

Practical tmux has more info on tmux.conf files.

share|improve this answer
2  
When I do this, mouse clicks and scrolls cause gibberish characters to be printed to the prompt area of the terminal I'm using with tmux. Any ideas? –  prpl.mnky.dshwshr Aug 1 '13 at 15:38
    
This works great for me. Now if only we can figure key bindings to do the same (maybe a screen at a time), I'll be a very happy camper. –  Jonathan Hartley Nov 4 '13 at 9:45
1  
Future tmux mouse users: To save you having to scroll to the bottom again before typing, you can hit q to exit scroll mode. –  Jezen Thomas Jan 7 at 5:11

This is the way I made it work, and the reasons why I think it is better than the default way.

To try it out, put all the code sections in ~/.tmux.conf.

Step 1. Change the prefix key so you won't have to reach one bit. 'B' is seemingly a close key, but it is in the middle of the two index fingers (at 'F' and 'J', respectively). Because that shortcut is essential in tmux, C-j is much better as it involves zero hand movement (apart from hitting the key).

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

Step 2. 'S' (to enter copy-mode) is: 1) close (same reason as above), 2) involves the other hand (compare: the 1-2 in boxing, or the ls command to view files in a directory), and 3) could be thought of as mnemonic for "scroll" (although the copy-mode isn't just about scrolling).

bind s copy-mode

Step 3. The last part, the actual scrolling. 'P' and 'N' are familiar for this purpose to the Emacs users. They are close, intuitive ('P' is above 'N' on the keyboard), and mnemonic ("previous" and "next"). If you just did some scrolling in Emacs, and then go to tmux, it makes sense to have those shortcuts.

However, I found that 'I' and 'K' are even better - they are even closer than 'P' and 'N', and intuitive (for the same reason); as for mnemonics - as scrolling is such a common thing to do, mnemonics won't really matter as the shortcuts will soon bypass your brain and enter the muscle memory.

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
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.