将命令从 Tmux 传递到 Vim
Pass commands from Tmux to Vim
我正在使用 Ctrl-[vim 移动键] 在 Tmux 中更改面板(C-j 移动到下面的面板,等等)。通常我有一个 Vim window 打开几个拆分。有没有办法让 tmux 识别 vim 在窗格中打开,并用 C-j 传递 "select the next vim split down"?也许它看起来像这样:
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
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 窗格中移动的内容。
我正在使用 Ctrl-[vim 移动键] 在 Tmux 中更改面板(C-j 移动到下面的面板,等等)。通常我有一个 Vim window 打开几个拆分。有没有办法让 tmux 识别 vim 在窗格中打开,并用 C-j 传递 "select the next vim split down"?也许它看起来像这样:
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
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 窗格中移动的内容。