Problema usando Ctrl + Teclas de seta no Vim ao usar Byobu com tmux

10

No Vim, eu defini as teclas Ctrl + Set para pular as palavras. Isso funciona muito bem ao executar o Vim dentro do terminal gnome.

No entanto, ao usar o byobu (tmux), ele mostra um comportamento estranho: ele apaga tudo depois do cursor.

Para referência, estas são as configurações do meu vim:

:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w
    
por shivams 28.01.2015 / 23:09

2 respostas

5

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:

por 17.06.2016 / 20:50
3

A partir daqui você pode desvincular a combinação de teclas no byobu:

Crie um arquivo ~/.byobu/.tmux.conf com (ou adicione se o arquivo existir):

set-window-option -g xterm-keys on

Em seguida, adicione o seguinte a ~/.byobu/keybindings.tmux :

unbind-key -n C-Left
unbind-key -n C-Right
    
por 18.05.2016 / 16:16

Tags