Po ostatniej aktualizacji systemu polecenie ctrl + strzałka w lewo / w prawo na terminalu zsh nic nie robi. Również ctrl + u ma coś nie tak, ponieważ zwykle to polecenie usuwa z kursora do początku linii, a teraz usuwa całą linię. Ktoś wie, jak rozwiązać te problemy? Dziękuję wam wszystkim.
zsh
keyboard-shortcuts
gentoo
riskio
źródło
źródło
Odpowiedzi:
FWIW, to działało w moim środowisku (rhel5.x) przy użyciu domyślnego zsh.
źródło
^[^[[D
i^[^[[C
odpowiednio dla OSX.zshrc
domyślnie wbudowany .$terminfo
zamiast sekwencji ucieczki: klucze$terminfo[kLFT5]
i$terminfo[kRIT5]
działały dla mnieCtrl + U najprawdopodobniej ma kursor na końcu linii. Po drugie, którą wersję Gentoo nazywasz „ostatnią aktualizacją systemu”?
A co chciałbyś zrobić ctrl + lewo / prawo?
bindkey '^[[1;5C' emacs-forward-word
bindkey '^[^[[D' emacs-backward-word
bindkey ";5C" forward-word
bindkey ";5D" backward-word
Uwaga: Jeśli konfiguracja działa, ale domniemane klucze nie robią tego, co chcesz, być może dlatego, że definicja klucza różni się od twojej i mojej, zrób:
cat > /dev/null
i naciśnij klawisze, które chcesz otrzymać i odpowiednio dostosuj.źródło
To, co działa , nie zależy bezpośrednio od dystrybucji (Gentoo, Debian, RHEL itp.) Ani powłoki (ZSH, KSH, BASH) - zależy od tego, które
terminal emulator
jest używane i jego ustawień: konsola, terminator, urxvt, lx-terminal itd. Dystrybucja może mieć znaczenie, jeśli używa innej standardowej konfiguracji powłoki (fx. .zshrc) i jeśli używasz innej powłoki, która konfiguruje powłoki dla tej dystrybucji może już ją obsłużyć.Oto kilka rozwiązań specyficznych dla emulatora terminala:
urxvt / rxvt-unicode (i może inne):
terminator, konsole i xterm (i może inne):
Aby uzyskać bardziej ogólne podejście, uruchom terminal, naciśnij kombinację klawiszy CTRL-V, a następnie kombinację klawiszy, której chcesz kod ucieczki (nazwę) - w tym przypadku kombinacje klawiszy CTRL-lewy i CTRL-prawy - i wstaw dane wyjściowe dla każdego kombinacja klawiszy pomiędzy dwoma cytatami.
źródło
terminal emulator
zastosowanego. Distro lub shell nie ma znaczenia. Prawdopodobnie dlatego też nie ma go w .zshrc, ponieważ to, co działa dla jednego emulatora terminala, nie działa dla innego. Ale prawdopodobnie można to rozwiązać, jeśli zshrc fx. przeczytaj zmienną środowiskową $ TERM i zastosowałem różne ustawienia klucza bindowania w zależności od wyniku.Rozwiązany.
Używany terminal: Konsole .
Aby rozwiązać: kliknij prawym przyciskiem myszy terminal (lub ustawienia w pasku menu) -> zmień aktualny profil -> mapowanie klawiatury -> zmień na Domyślny (xfree4)
źródło