Integrate tmux with some vim bindings.

This commit is contained in:
Hans Goor 2024-03-25 21:11:57 +01:00
parent f463530645
commit eaf9c23a97
Signed by: eyedevelop
SSH key fingerprint: SHA256:Td89veptDEwCV8J3fjqnknNk7SbwzedYhauyC2nFBYg
3 changed files with 37 additions and 5 deletions

View file

@ -11,6 +11,9 @@ source $HOME/.tmux/plugin-configs/rose-pine.conf
# General config
source $HOME/.tmux/globals.conf
# Nvim helper
source $HOME/.tmux/nvim.conf
# Keybindings
source $HOME/.tmux/bindings.conf

View file

@ -8,10 +8,10 @@ bind c new-window -c "#{pane_current_path}"
unbind '"'
unbind %
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Alt-arrow switching
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# bind -n M-Left select-pane -L
# bind -n M-Right select-pane -R
# bind -n M-Up select-pane -U
# bind -n M-Down select-pane -D

29
tmux/.tmux/nvim.conf Normal file
View file

@ -0,0 +1,29 @@
# helper to decide whether we are inside (n)vim
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\$+\\/)?g?(view|n?vim?x?)(diff)?$'"
# Correct binding depending on version
if-shell -b '[[ "$(tmux -V)" == tmux\ 2.* ]]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
if-shell -b '[[ "$(tmux -V)" == tmux\ 3.* ]]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
# Bindings
bind-key -n 'C-Space' if-shell "$is_vim" 'send-keys C-Space' 'select-pane -t:.+'
bind-key -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'select-pane -L'
bind-key -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'select-pane -D'
bind-key -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'select-pane -U'
bind-key -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'select-pane -R'
bind-key -n 'M-Left' if-shell "$is_vim" 'send-keys M-h' 'select-pane -L'
bind-key -n 'M-Down' if-shell "$is_vim" 'send-keys M-j' 'select-pane -D'
bind-key -n 'M-Up' if-shell "$is_vim" 'send-keys M-k' 'select-pane -U'
bind-key -n 'M-Right' if-shell "$is_vim" 'send-keys M-l' 'select-pane -R'
bind-key -T copy-mode-vi 'M-h' select-pane -L
bind-key -T copy-mode-vi 'M-j' select-pane -D
bind-key -T copy-mode-vi 'M-k' select-pane -U
bind-key -T copy-mode-vi 'M-l' select-pane -R
bind-key -T copy-mode-vi 'C-\' select-pane -l
bind-key -T copy-mode-vi 'C-Space' select-pane -t:.+