Como posso percorrer uma linha em zsh?

6

Estou usando o iTerm2 w / bash e eu percorro o buffer de histórico uma linha digitando Shift+Up . Quando mudo para o meu shell zsh, ele insere apenas 2A . Como posso rolar uma única linha em zsh w / apenas meu teclado, de preferência usando Shift+Up ?

    
por Bradford 04.12.2015 / 16:35

2 respostas

3

Eu acho que depende do emulador de terminal.

Por exemplo, com zsh , no konsole funciona Shift + Acima .
No xterm não, mas funciona Shift + PgUp .

Parece que com o iTerm2 ele deve funcionar por padrão:

  • para mover uma linha para cima
  • para mover uma linha para baixo
por 04.12.2015 / 17:14
0

A função que você está procurando é fornecida pelos up-history e up-line-or-history widgets ( down-history e down-line-or-history para rolagem para baixo).

Por padrão, up-line-or-history deve ser limitado a Acima , mas você pode vinculá-lo a (quase) qualquer outra seqüência de teclas com bindkey . Em terminais chaves especiais (chaves que não geram um caractere imprimível) geram uma seqüência de chaves que é então interpretada pelo shell - ou não, como seu exemplo de 2A para Shift + Acima mostra. Essas sequências chave também podem diferir entre emuladores de terminal. Para obter a sequência de teclas correta para o seu terminal, abra-a e pressione Ctrl + v seguido pela combinação de teclas desejada ( Shift + Acima ). No meu terminal (rxvt-unicode) recebo ^[[a . Você pode vincular a sequência ao up-history widged:

bindkey <in-string> up-history

Apenas substitua <in-string> pela sequência encontrada. No meu caso

bindkey '^[[a' up-history

Nota 1: Você provavelmente precisará colocar a sequência entre aspas, pois provavelmente conterá caracteres que serão interpretados por zsh caso contrário.

Nota 2: Algumas combinações de teclas podem gerar seqüências de teclas idênticas. Por exemplo, letras combinadas com Ctrl + Deslocamento geralmente não diferem das mesmas letras combinadas com apenas Ctrl . Ambos, Ctrl + Shift + a e Ctrl + a usualmente produzem ^A . Em alguns emuladores de terminal, as combinações Ctrl + Shift são usadas até para atalhos do próprio terminal e não estão disponíveis no shell.

    
por 09.12.2015 / 09:23

Tags