Usando teclas de seta de ctrl com PuTTY e tela

33

Eu procurei e não consegui encontrar uma solução para isso em nenhum lugar. Eu estou usando PuTTY do Windows para se conectar a vários servidores onde eu corro bash e tela. Parece que o bash funciona bem com as teclas ctrl-arrow para pular palavra-a-palavra na linha de comando, mas dentro da tela não está funcionando. Não na tela, ctrl-left envia "^ [OC e ctrl-right é" ^ [OD ". Na tela, eu recebo" ^ [[C "e" ^ [[D ", que parecem ser os códigos para apenas as teclas de seta esquerda / direita.Existe alguma maneira de fazer com que a tela reconheça as teclas de seta de ctrl ao usar o PuTTY? (FYI, não me lembro de ter esse problema ao usar o gnu-terminal no Linux em vez de PuTTY).

UPDATE: Parece PuTTY é o problema, pois não está enviando os códigos de escape que são necessários para que isso funcione. Estou desistindo por enquanto e usando o Cygwin + mintty.

    
por kbosak 07.04.2010 / 16:36

7 respostas

14

Editar:

Veja o que funcionou para mim:

  • Meu ~/.bashrc conjuntos TERM=xterm (o meu é TERM=xterm-256colors ) sobrescrevendo TERM=screen da tela
  • eu defini PuTTY > Terminal > Recursos > Desativar o modo de teclas do cursor de aplicativo para marcado
  • Eu digito tput smkx no prompt do Bash
  • Agora as teclas Ctrl-Seta pulam palavra por palavra

  • Para fins informativos, se eu fizer isso:
    tput smkx | hexdump -c
    Eu recebo 0000000 033 [ ? 1 h 033 =
    e tput rmkx | hexdump -c
    me dá 0000000 033 [ ? 1 l 033 >

Eu acho que há uma maneira de reformular isso em algo um pouco melhor, mas é o que eu tenho até agora e parece funcionar.

Resposta original:

De info screen :

Each window in a 'screen' session emulates a VT100 terminal, with some extra functions added. The VT100 emulator is hard-coded, no other terminal types can be emulated.

E os VT100s não têm códigos de teclas Ctrl-Arrow.

    
por 07.04.2010 / 23:14
18

Como mencionado em aqui , você pode colocar em ~ / .inputrc:

"\eOD": backward-word
"\eOC": forward-word

Funcionou para mim.

    
por 19.04.2012 / 14:29
4

Eu estou um pouco surpreso que você tenha conseguido colocar Putty corretamente, mesmo sem usar a tela, já que isso nunca funcionou para mim. Minha solução foi mudar para usar alt-arrowkeys (meta-arrowkeys), que acredito ter a mesma ligação forward-word / backward-word no bash por padrão, apesar de ter que emitir alguns comandos extras para o zsh reconhecê-los:

bindkey "^[^[[C" forward-word      # Meta-RightArrow
bindkey "^[^[[D" backward-word     # Meta-LeftArrow
    
por 08.04.2010 / 00:11
4

Caso outros encontrem essa pergunta antiga como eu fiz, uma solução mais recente:

Ctrl and arrow keys doesn't work in putty! What do I do?

putty inverts the sense of the cursor key mode on ctrl, which is a bit hard for tmux to detect properly. To get ctrl keys right, change the terminfo settings so kUP5 (Ctrl-Up etc) are the adjusted versions, and disable smkx/rmkx so tmux doesn't change the mode. For example with this line in .tmux.conf (assuming you have TERM set to xterm):

set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"

Note that this will only work in tmux 1.2 and above.

link

    
por 25.06.2014 / 02:50
0

Você deve examinar a documentação do terminfo, ncurses, screen e putty se quiser depurar / configurar corretamente. Também os atalhos do bash podem ser configurados com o inputrc. Olhe para as man pages do bash e procure por inputrc.

    
por 07.04.2010 / 16:45
0

Você tem a codificação de caracteres correta no Putty? Se você se conectar a um servidor em UTF-8 e seu putty estiver em charset padrão, no vim, as teclas de seta serão gravadas. Se Putty estiver em UTF-8, você poderá mover o cursor. Talvez seja o mesmo no seu caso ...

    
por 07.04.2010 / 18:34
0

Na sua configuração de massa sob o Terminal - > Recursos, há algumas caixas de seleção "desativar". Você pode tentar desabilitar as teclas do cursor do aplicativo ou o modo de teclado do aplicativo - às vezes, o putty tenta ser "inteligente demais" e envia caracteres de controle que não são compatíveis com o servidor.

    
por 09.04.2010 / 02:08