O problema é duplo. Primeiro, tmuxpor padrão, converte as teclas de seta de controle de um tipo de sequência de escape para outro. Então, chaves especiais como as que controlleftsão enviadas vimsem o modificador, por exemplo left,. Se você cat -vver as diferentes seqüências de escape, poderá ver algo como isto
^[OD
contra isso (fora do tmux):
^[[1;5D
A linha
set-window-option -g xterm-keys on
corrige esse aspecto. A outra parte é que, tmuxpor padrão, usa a descrição do terminal para screen. Essa descrição do terminal não descreve as teclas de seta de controle. Essas entradas do banco de dados do terminal seriam as mais apropriadas para o VTE (gnome-terminal):
Existem outros, como
que seria selecionado automaticamente quando rodando em screense o correspondente TERMfora eram vte, vte-256coloretc. tmuxnão faz isso-seleção automática; você precisa modificar seu arquivo de configuração.
A propósito, não há entrada "screen.xterm" porque isso interferiria em alguns usos de screen. Não há conflito com TERM=xterm-new.
Se você possui um banco de dados de terminal padrão (mínimo), como ncurses-baseno Debian, talvez não o possua. Mais comum seria xterm-256color, que é próximo o suficiente para ser usado com o vim e o tmux.
Por exemplo, se eu adicionar isso ao meu .tmux.confarquivo, ele se comportará conforme o esperado no vim:
set -g default-terminal "xterm-256color"
Leitura adicional:
Control+Leftestá funcionando;Control+Rightnão é. Vou testar e atualizar mais tarde.