Scrolling on Mac with Tmux and iTerm

13

10

I'm using iTerm 2.1.4 and Tmux on OS X Yosemite. I'd like to be able to scroll my iTerm windows up and down but I'm not sure what controls scrolling. Does tmux control scrolling when I use it with iTerm or does iTerm still control scrolling?

I've tried using the various keys that are supposed to scroll iTerm but all I get are "~~~~~" characters on the command line. How do I scroll with this setup?

Ray

Posted 2016-06-04T21:20:10.030

Reputation: 255

Answers

29

Tmux scrolling is a little different than just scrolling with a mouse wheel or a trackpad.

In tmux, scrolling is accomplished by first sending 'prefix-['. You'll see a little yellow box in the upper, right-hand corner of your terminal window.

In this mode, you can use arrow keys, PageUp, PageDown, Ctrl-U, Ctrl-D, hjkl (vi-mode), or other configurable movement keys to scroll forward or back through the buffer.

There is an option in relatively recent builds of tmux that allows you to use the mouse while in scrolling mode.

add this to your .tmux.conf

set-option -g mouse on

Additionally, if memory serves, tmux is 'built into' iTerm, and thus features like multiplexing are built in as well. Is there a reason you want to use tmux in iTerm? The built-in OSX Terminal is definitely enhanced by a multiplexer like tmux, but iTerm seeks to alleviate those shortcomings by being a standalone solution.

EDIT 1: After upgrading to El Capitan, I noticed some unfamiliar behavior when using Terminal.app and tmux. This led me to an excellent article detailing options I wasn't aware of and which look to answer your question more thoroughly than I could hope to. All the options are tmux-specific, as far as I can tell, and are independent of OSX versions, so using them in Yosemite should be fine. Your scrolling question is covered here, with options like:

bind-key -t vi-copy WheelUpPane scroll-up
bind-key -t vi-copy WheelDownPane scroll-down

Many more useful options in the article linked below.

https://ryanfb.github.io/etc/2015/10/19/tmux_mouse_mode_on_el_capitan.html

notdavidcronenberg

Posted 2016-06-04T21:20:10.030

Reputation: 531

3

The link shared at the bottom of this answer is excellent but now slightly out of date. In order to accomplish your goal, you'll also need to read this: https://github.com/tmux/tmux/issues/754#issuecomment-297452143

– John Ruiz – 2017-07-06T15:10:31.543

Doesn't work for me on high sierra – Ulysse BN – 2018-05-29T13:21:43.857

works in iterm2 using tmux but messes up itself in terminal.app with things like scrolling in vim stop working and then copy paste become weirder – Ishan Srivastava – 2018-07-19T03:30:40.510

0

I found following ways to deal with it (macOS Mojave):

  • Enable tmux scroll mode and then press arrow up key; iTerm prompts you to set the aforementioned preference for scrolling. But in case you missed/dismissed this prompt you won't be prompted again, I think.

  • Go to iTerm settings -> "Advanced" -> "Scroll wheel sends arrow keys when in alternate screen mode" -> set to "yes".

everyonesdesign

Posted 2016-06-04T21:20:10.030

Reputation: 1