我正在使用Ctrl- [vim移动键]来更改Tmux中的窗格(C-j移至下面的窗格,依此类推)。通常,我会打开一个带有多个拆分的Vim窗口。有没有一种方法可以让tmux识别窗格中已打开的vim,并通过C-j传递“选择下一个分离的vim”?也许看起来像这样:
bind -t C-j
if in vim
C-W-J # move to next vim split down
else
select-pane -D # move to next tmux pane down
答案 0 :(得分:3)
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"
如Chris Toomey's Vim-tmux-navigator
很显然,您需要更改发送键以匹配在vim窗格中进行的任何移动。