As combinações de teclas do Emacs no zsh não estão funcionando (Ctrl-A, Ctrl-E)

17

Meus atalhos de teclado do Emacs zshnão estão funcionando ( CtrlA, CtrlE). Eu uso zshno OS X.

Eles podem estar ligados a alguma outra coisa. Atualmente, estou usando o oh-my-zsh .

E o meu .zshrcestá aqui .

insira a descrição da imagem aqui

Takehiro Adachi
fonte
@rene Done! thx pelo conselho! : D
Takehiro Adachi
A partir da captura de tela, entendo que você está no Mac OS X? Eu tenho o mesmo problema lá no terminal. Ctrl + A / E / K já estão no sistema operacional (para uso em campos de texto na GUI), o que pode explicar isso.
Henno 25/12/12
@ Henno realmente? Estou usando o zsh atm, e quando eu uso o bash, as teclas Ctrl + A (ir para o primeiro caractere da linha) e Ctrl + E (Ir para o final da linha) funcionam bem. mas quando eu uso o zsh, é como a captura de tela. então eu acho que é um problema sobre zsh, e não o OS :(
Takehiro Adachi
@TakehiroAdachi seu conserto funcionou para mim também!
Henno 26/12/12
@ Henno Great: D!
Takehiro Adachi

Respostas:

21

Eu resolvi o problema. Parece que o oh-my-zsh estava substituindo as combinações de teclas padrão.

Quando eu adicionei a linha abaixo no final da minha .zshrc, CtrlEe CtrlAtrabalhou:

bindkey -e
Takehiro Adachi
fonte
ótimo, funcionou para mim também!
Henno 26/12/12
5

De um modo geral, você pode encontrar o código de uma chave digitando CtrlVe a tecla. Você pode usar esta tecla com bindkeypara mapeá-la para uma zshfuncionalidade de teclado (por exemplo beginning-of-line).

No seu caso específico, isso seria CtrlV CtrlAe CtrlV CtrlE.

Em seguida, você pode colocar o código no seu .inputrc, no sistema /etc/inputrcou .zshrcassim:

bindkey '^A' beginning-of-line
bindkey '^E' end-of-line

Isso funciona para outras chaves também. Por exemplo, tive alguns problemas com Homee End.

Você poderá usar esse truque em qualquer sessão do terminal: tty,

tiktak
fonte