Can’t resize vim splits inside tmux

puttytmuxvim

Everything is working fine outside of tmux. But in tmux I can't resize vim splits with the mouse.
I have set mouse=a in my .vimrc. Is there a solution for this?

.tmux.conf:

$ cat ~/.tmux.conf
set-option -g mode-mouse on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on

Best Answer

It appears that dragging the status line to resize a split is not possible when the Vim option ttymouse is xterm; it does work when the value is xterm2 though. The latter value configures Vim to ask for an extended mouse reporting mode that (among other things) provides better dragging support. This extended mode only works with newer versions of xterm (and other compatible terminal emulators, including tmux), so it is not the default value.

You could use something like the following in your .vimrc to set the option:

set mouse+=a
if &term =~ '^screen'
    " tmux knows the extended mouse mode
    set ttymouse=xterm2
endif

(Though, I am not sure how this will affect actual screen instances, which also use a TERM that starts with screen.)

When you are outside of tmux, the TERM environment variable is probably an xterm-ish value, and Vim will probe for the xterm version by using the t_RV control sequence.