使用 Tmux 和 Vim 让 Alt 在终端中工作

使用 Tmux 和 Vim 让 Alt 在终端中工作

我正在尝试切换Alt + h/j/k/ltmux 窗格和 vim 窗口。然而由于某种原因,我的终端(xfce4-terminal) 和 并Alt不能很好地配合。我必须Alt + h/j/k/l通过以下脚本在 vim 中切换窗口:

nnoremap <silent> <M-h> :TmuxNavigateLeft<cr>
nnoremap <silent> <M-j> :TmuxNavigateDown<cr>
nnoremap <silent> <M-k> :TmuxNavigateUp<cr>
nnoremap <silent> <M-l> :TmuxNavigateRight<cr>
nnoremap <silent> <M-\> :TmuxNavigatePrevious<cr>

let c='a'
while c <= 'z'
  exec "set <A-".c.">=\e".c
  exec "imap \e".c." <A-".c.">"
  let c = nr2char(1+char2nr(c))
endw

老实说,我从互联网上找到了上述脚本的后半部分,并且不明白它在做什么。现在,在我的 tmux 配置中,我有:

bind -n M-h if-shell "$is_vim" "send-keys M-h" "select-pane -L"
bind -n M-j if-shell "$is_vim" "send-keys M-j" "select-pane -D"
bind -n M-k if-shell "$is_vim" "send-keys M-k" "select-pane -U"
bind -n M-l if-shell "$is_vim" "send-keys M-l" "select-pane -R"

结果是我可以在 vim 中切换窗口,但无法在 tmux 中切换窗格。我该如何解决?我正在使用 xfce4 作为桌面环境运行 Arch Linux。这个问题似乎在 xterm、xfce4-terminal 和 gnome-terminal 中持续存在。

相关内容