tmux vim-like scrolling rendering issue

1.4k views Asked by At

I am having some weird scrolling behavior when I try to use vim-like page up/page down (ctrl-u, ctrl-d) in tmux with more than one pane. In the example picture below, I have two vertically split panes, and I am trying to page up (ctrl-a-[, ctrl-u)in just the right one.

Before page up: before page up

After page up: after page up

There are some weird re-drawing issues going on, and it is corrupting both panes. One curious thing is that I can scroll up line by line (ctrl-a-[, arrow-up, ...) just fine, and it seems to redraw correctly.

A similar issue happens when I have a vertically split vim session (say, with NERDTree) and I try to page up/page down in the right pane.

I'm using: terminal app in OSX, Yosemite 10.10.3, tmux 2.0 (installed via homebrew). This happens using tmux 1.9a as well.

My .tmux.conf is below, but also note that this problem exists with a completely blank .tmux.conf file.

.tmux.conf:

#set -g utf8 on
#set-window-option -g utf8 on

# I like C-b, but I use it in vim for ctrl-p's buffer mode
# and C-a interferes with emacs, so I'll try C-q
unbind C-b
set -g prefix C-a

# Move between panes
bind-key -r "." next-window
bind-key -r "," previous-window

# NOTE: these require tmux 1.9 or later
unbind %
bind | split-window -h -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
bind _ split-window -v -c "#{pane_current_path}"
bind s split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"

# Highlight active window
set-window-option -g window-status-current-bg red
# Set window notifications
setw -g monitor-activity on
set -g visual-activity on

# Automatically set window title
set-window-option -g automatic-rename on

# resize panes like vim
setw -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r < resize-pane -L 3
bind -r > resize-pane -R 3
bind -r + resize-pane -U 1
bind -r - resize-pane -D 1
set -g default-terminal 'screen-256color'

# display visible indicator of each pane
bind-key w display-panes

# swap panes
bind-key -r J swap-pane -D
bind-key -r K swap-pane -U

# enable mouse selection in copy mode
# setw -g mode-mouse on
set-option -g mouse-select-window on
set -g mouse-select-pane on
set-option -g mouse-resize-pane on
# set-option -g mouse-utf8 on

# use vi-style key bindings in the status line
set -g status-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
bind-key -t vi-edit Up   history-up
bind-key -t vi-edit Down history-down

set -s escape-time 0
0

There are 0 answers