Skip to content

Instantly share code, notes, and snippets.

@ptantiku
Created August 28, 2019 06:33
Show Gist options
  • Save ptantiku/9a1d50e5c7246884c89c4ae05d73d68b to your computer and use it in GitHub Desktop.
Save ptantiku/9a1d50e5c7246884c89c4ae05d73d68b to your computer and use it in GitHub Desktop.
tmux in vim mode
# use C-a, since it's on the home row and easier to hit than C-b
set-option -g prefix C-a
unbind-key C-a
bind-key C-a send-prefix
set -g base-index 1
# vi is good
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
# mouse behavior
setw -g mouse on
# Set window notifications
setw -g monitor-activity on
set -g visual-activity on
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment