我正在使用 Ctrl-[vim 移动键] 来更改 Tmux 中的窗格(Cj 移动到下面的窗格等)。通常我会打开一个 Vim 窗口,并分成几个部分。有没有办法让 tmux 识别在窗格中打开的 vim,并通过 Cj 传递“选择下一个 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
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
如Chris Toomey 的 Vim-tmux-navigator 所示
显然,您需要更改发送键以匹配您在 vim 窗格中移动的任何内容。