O problema é duplo. Primeiro, tmux
por padrão converte as teclas de seta de controle de um tipo de seqüência de escape para outra. Portanto, chaves especiais como control à esquerda são enviadas para vim
sem o modificador, por exemplo, à esquerda . Se você usa cat -v
para ver as diferentes seqüências de escape, você pode ver algo assim
^[OD
versus isso (fora do tmux):
^[[1;5D
A linha
set-window-option -g xterm-keys on
corrige esse aspecto. A outra parte é que tmux
, por 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 executado em screen
se o TERM
correspondente fosse vte
, vte-256color
, etc. tmux
não faz essa seleção automática; você tem que 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ê tem um banco de dados de terminal padrão (mínimo) como ncurses-base
no Debian, você pode não tem aqueles. Mais comum seria xterm-256color
, que está perto o suficiente para ser usado com o vim e tmux.
Por exemplo, se eu adicionar isso ao meu arquivo .tmux.conf
, ele se comporta como você espera no vim:
set -g default-terminal "xterm-256color"
Leitura adicional:
- Extensões XTERM (banco de dados do terminal)
- vim: como especificar as teclas de seta
- Como posso ver o que meu teclado envia?