Tmux: ligação Ctrl- '

4

Gostaria de vincular Ctrl- 'no tmux ao painel de seleção.

Eu tentei: bind -n C- 'select-pane -t:. + O que me dá: chave desconhecida C - '

Eu também tentei: bind -n 'C-' 'select-pane -t:. + O que me dá o mesmo erro.

Eu tentei simplesmente ': bind -n 'select-pane -t:. + Isso funcionou bem (mas ligado 'não C -'.

Mais confusamente, eu tentei: bind -n '-C select-pane -t:. + Que surpreendentemente funcionou (eu tive que bater backtick primeiro e depois ctrl). O que há dentro do Ctrl- 'que o tmux não gosta?

    
por Jon Q 22.06.2015 / 07:45

2 respostas

5

tmux usa essa lógica para manipular o modificador ctrl em key-string.c (o backtick é o código 96):

    /* Convert the standard control keys. */                               
    if (key < KEYC_BASE && (modifiers & KEYC_CTRL) && !strchr(other, key)) {
            if (key >= 97 && key <= 122)
                    key -= 96;
            else if (key >= 64 && key <= 95)
                    key -= 64;
            else if (key == 32)
                    key = 0;
            else if (key == 63)
                    key = KEYC_BSPACE;
            else
                    return (KEYC_NONE);
            modifiers &= ~KEYC_CTRL;
    }

Embora alguns aplicativos possam tratar todo o intervalo de 64 a 126 como válido para ctrl , o tmux exclui backtic, chaves, barra vertical e til. A razão provável é que eles são menos úteis para associações de teclas, porque as chaves não modificadas são frequentemente usadas em scripts de shell.

Por outro lado, ctrl-@ teria a mesma interpretação esperada, e você poderia usar isso em vez disso.

    
por 22.06.2015 / 10:22
0

Eu encontrei em algum lugar o conselho para usar cat dentro do tmux para verificar a sequência de escape.

  1. Executar tmux
  2. Executar cat
  3. Pressione as teclas C-'

No meu terminal eu tenho ^@

Então, na configuração que eu coloquei

set -g prefix ^@ Trabalhei para mim com roxterm

    
por 08.04.2017 / 12:48