Tecla principal não está funcionando no terminal

10

Estou usando o Terminal GNOME 2.7.3 e zsh 4.3.9 (x86_64-unknown-linux-gnu)

Home e End não estão funcionando. Nada acontece e nada é exibido quando eu os pressiono. mas eles funcionam quando eu pressiono shift + Home (rola para o início da saída do shell) e também trabalho em outros programas GUI. Eu pesquisei e tentei o seguinte. Nenhuma mudança: (

  885  bindkey "\e[1~" beginning-of-line
  886  bindkey "\e[H" beginning-of-line
  887  bindkey "\e1~" beginning-of-line
  888  bindkey "\eH" beginning-of-line
  889  bindkey "\e[0H" beginning-of-line

PS: Quando estou na última guia e pressiono Ctrl + pagedown , recebo ;5~ impresso na tela. Isso dá alguma pista?

    
por balki 08.09.2011 / 07:43

5 respostas

1

Estou no fedora agora, mas sugiro que você leia o wiki do Archlinux, tudo isso: Teclas Home e End não funcionam .

O que eu fiz para corrigir isso:

  1. Pressione Ctrl-V Home, a seqüência de escape da tecla Home é impressa. Não é não \e[4~ e \e[1~ como eu esperava, observando /etc/inputrc . Foi [H e [F

  2. Extraia as informações do terminal infocmp $TERM >terminfo.src

  3. Abra esse arquivo para edição, como vim terminfo.src , procure khome e kend está atribuído a algo, digamos khome=\E[1~ e kend=\E[4~ , o que não está funcionando nesse caso. removê-lo e substituí-lo com a seqüência que você encontrou no passo # 1, então, para mim, após a edição foi: khome=\E[H e kend=\E[F .

  4. Se você quiser jogar com segurança, certifique-se de que [F e [H (ou qualquer sequência que você tenha usado) não estejam atribuídos a outra coisa ou que as coisas ficarão confusas!

  5. execute tic terminfo.src , que cria o diretório ~/.terminfo .

  6. Em cima de .zshrc antes de qualquer outro comando, coloque: export TERMINFO=~/.terminfo

Abra uma nova janela de terminal e você deve estar bem, a casa e o final devem estar funcionando agora.

P.S: O método bindkey deveria teoricamente funcionar e é mais fácil, mas não para mim.

    
por 25.08.2015 / 01:45
6

As seqüências de escape enviadas pelas teclas de função e cursor consistem em um caractere de escape seguido por caracteres imprimíveis. Pressione Ctrl + V e depois em Início . Isso irá inserir a seqüência de escape literalmente. Em seguida, adicione uma instrução bindkey ao seu ~/.zshrc .

A instrução provavelmente será (note O , não 0 ):

bindkey '\e[OH' beginning-of-line
bindkey '\e[OF' end-of-line
    
por 09.09.2011 / 01:07
5

Descobri que tinha de carregar CTRL-v , deixar ir, depois a tecla Home ou End para obter as sequências ^[[H e ^[[F para Home e End , respectivamente. Adicionar as seguintes linhas ao arquivo .zshrc resolveu o problema para mim:

bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
    
por 13.01.2015 / 14:18
1

Adicione essas linhas a /etc/zshrc e, em seguida, faça um source /etc/zshrc (tirado de aqui )

bindkey '\e[1~'   beginning-of-line  # Linux console
bindkey '\e[H'    beginning-of-line  # xterm
bindkey '\eOH'    beginning-of-line  # gnome-terminal
bindkey '\e[2~'   overwrite-mode     # Linux console, xterm, gnome-terminal
bindkey '\e[3~'   delete-char        # Linux console, xterm, gnome-terminal
bindkey '\e[4~'   end-of-line        # Linux console
bindkey '\e[F'    end-of-line        # xterm
bindkey '\eOF'    end-of-line        # gnome-terminal
    
por 25.01.2014 / 05:34
1

Esta resposta explicou o meu problema muito bem e corrigiu-o.

link

TL; DR: Altere o tipo de terminal do PuTTY do padrão xterm para linux .

Talvez alguém possa usá-lo também.

    
por 24.11.2017 / 11:44