Nie działają skróty klawiszowe Emacsa w Zsh (Ctrl-A, Ctrl-E)

17

Moje skróty klawiszowe Emacsa w zshnie działają ( CtrlA, CtrlE). Używam zshna OS X.

Mogą być związane z czymś innym. Obecnie używam oh-my-zsh .

A mój .zshrcjest tutaj .

wprowadź opis zdjęcia tutaj

Takehiro Adachi
źródło
@rene Gotowe! dziękuję za radę! : D
Takehiro Adachi
Ze zrzutu ekranu, jak rozumiem, jesteś na Mac OS X? W terminalu mam ten sam problem. Ctrl + A / E / K są już zajęte w tym systemie operacyjnym (do użycia w polach tekstowych w GUI), co może to wyjaśnić.
Henno,
@Henno naprawdę? Używam atm Zsh, a kiedy używam bash, ctrl + a (przejdź do pierwszego znaku linii) i ctrl + e (przejdź do końca linii) działa dobrze. ale kiedy używam Zsh, wygląda to jak zrzut ekranu. więc myślę, że to jest problem z Zsh, a nie z OS :(
Takehiro Adachi
@TakehiroAdachi Twoje naprawione działało również dla mnie!
Henno,
@Henno Great: D!
Takehiro Adachi

Odpowiedzi:

21

Problem został rozwiązany. Wygląda na to, że oh-my-zsh przesłaniał domyślne skróty klawiszowe.

Kiedy dodałem poniższy wiersz na końcu mojego .zshrc, CtrlEi CtrlApracował:

bindkey -e
Takehiro Adachi
źródło
świetnie, dla mnie też zadziałało!
Henno,
5

Ogólnie rzecz biorąc, kod klucza można znaleźć, wpisując CtrlVi klucz. Następnie możesz użyć tego klawisza, bindkeyaby zmapować go do zshfunkcji klawiatury (np beginning-of-line.).

W twoim konkretnym przypadku byłoby to CtrlV CtrlAi CtrlV CtrlE.

Następnie możesz umieścić kod w swoim .inputrc, systemie /etc/inputrclub .zshrcpodobnym:

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

Działa to również w przypadku innych kluczy. Na przykład miałem problemy z Homei End.

Powinieneś być w stanie użyć tej sztuczki w dowolnej sesji terminalu: tty,

TIK Tak
źródło