Fix Tmux and Vim integrated navigation

This commit is contained in:
Tony Grosinger 2024-05-30 08:33:46 -07:00
parent 38a63ae5fc
commit 9658903ed2
2 changed files with 33 additions and 5 deletions

View File

@ -19,12 +19,18 @@ bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}"
### vim/tmux navigation ### vim/tmux navigation
### https://github.com/christoomey/vim-tmux-navigator
set -g focus-events on set -g focus-events on
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"' is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
bind -n C-Left if-shell "$is_vim" "send-keys C-h" "select-pane -L" | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?|fzf)(diff)?$'"
bind -n C-Down if-shell "$is_vim" "send-keys C-j" "select-pane -D" bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
bind -n C-Up if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
bind -n C-Right if-shell "$is_vim" "send-keys C-l" "select-pane -R" 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 -T copy-mode-vi 'C-h' select-pane -L
bind-key -T copy-mode-vi 'C-j' select-pane -D
bind-key -T copy-mode-vi 'C-k' select-pane -U
bind-key -T copy-mode-vi 'C-l' select-pane -R
# change windows # change windows
bind -n S-Right next-window bind -n S-Right next-window

View File

@ -0,0 +1,22 @@
-- Seamless navigation between tmux and vim windows.
-- https://github.com/christoomey/vim-tmux-navigator
return {
'christoomey/vim-tmux-navigator',
cmd = {
'TmuxNavigateLeft',
'TmuxNavigateDown',
'TmuxNavigateUp',
'TmuxNavigateRight',
'TmuxNavigatePrevious',
},
keys = {
{ '<c-h>', '<cmd><C-U>TmuxNavigateLeft<cr>' },
{ '<c-j>', '<cmd><C-U>TmuxNavigateDown<cr>' },
{ '<c-k>', '<cmd><C-U>TmuxNavigateUp<cr>' },
{ '<c-l>', '<cmd><C-U>TmuxNavigateRight<cr>' },
{ '<c-\\>', '<cmd><C-U>TmuxNavigatePrevious<cr>' },
},
init = function()
vim.g.tmux_navigator_disable_when_zoomed = 1
end,
}