28 lines
1 KiB
Bash
28 lines
1 KiB
Bash
# split windows like vim
|
|
# vim's definition of a horizontal/vertical split is reversed from tmux's
|
|
bind s split-window -v
|
|
bind v split-window -h
|
|
|
|
# Smart pane switching with awareness of vim splits
|
|
# See: https://github.com/christoomey/vim-tmux-navigator
|
|
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?x?)(diff)?$"'
|
|
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
|
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
|
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
|
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
|
bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
|
|
|
# resize panes like vim
|
|
# feel free to change the "1" to however many lines you want to resize by, only
|
|
# one at a time can be slow
|
|
bind < resize-pane -L 1
|
|
bind > resize-pane -R 1
|
|
bind - resize-pane -D 1
|
|
bind + resize-pane -U 1
|
|
|
|
# bind : to command-prompt like vim
|
|
# this is the default in tmux already
|
|
bind : command-prompt
|
|
|
|
# vi-style controls for copy mode
|
|
setw -g mode-keys vi
|