5

我正在使用在 tmux 会话中运行的 Vim。在 Vim 中,我将 Ctrl-Right 绑定到 :tabnext:

map <C-right> :tabnext<CR>      "next tab

即使 Vim 在 tmux 中,我也希望能够调用此绑定,因此我在 .tmux.conf 中添加了以下内容:

bind-key -n C-Right send-keys C-Right

但这对 Tmux 或 Vim 都没有任何明显的影响!我在这里做错了什么?

提前致谢。

4

1 回答 1

16

尽管我在这里踏足了未知领域,但我得到了一些工作。也许其他人可以填写其余部分。

在终端中启动 Vim 和在 tmux 中启动 Vim 时,我注意到的第一个区别在于它们的'term'设置。

当被问到时:set term?,普通终端 Vim 回答xterm-256color了,但 tmux Vim 回答了screen。重要的是要了解终端中发送的确切密钥代码取决于终端的类型。

一种解决方案是让 tmux 和 Vim 使用相同的语言。在 tmux 中:

set-option -gw xterm-keys on
bind-key -n C-Right send-keys C-Right

在 Vim 中:

:set term=xterm-256color

现在 Vim 和 tmux 可以互相理解对方的终端键码,并且你的击键将一直到 Vim。

于 2013-05-19T22:20:33.200 回答