Nie mogę mówić w imieniu iTerm, ale są to skróty klawiszowe, których użyłem, aby rozwiązać ten problem w GNOME Terminal na Fedorze 19 z systemem ZSH 5.0.7 z Oh-my-zsh:
bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word
gdzie \e== Sekwencja klawiszy Escape (zgodnie z dokumentacją w sekcji 4.1.1 )
i [== O(wielkie litery O; jak udokumentowano w sekcji 4.2.1 ), w niektórych przypadkach. Na przykład w ramach tmuxtej substytucji jest dla mnie konieczna, jednak bez tmuxniej nie jest wymagana żadna zamiana i [==[
Kluczowe kody sekwencji można uzyskać, catnaciskając i naciskając żądaną sekwencję. Na przykład wyniki prasowania <Alt+Right>należy interpretować w następujący sposób:
$ cat
^[[1;3C
^[== \e== Sekwencja klawiszy Escape
[== [bez tmuxOR
[== O(wielkie litery o) ztmux
1;3 == Nie jestem tego pewien, ale logicznie powinno to znaczyć <Alt>
C == Klawisz strzałki w prawo
Następnie ta sekwencja jest podana bindkeyw~/.zshrc pliku jako trwały jako pierwszy argument i jest związana , co oznacza, że naciśnięcie klawisza w argumencie pierwszym spowoduje wykonanie określonego polecenia edytora (lub widgetu w kategoriach zsh) do widgetu, który w pierwszym wiersz powyższego przykładu to forward-word.
The ~/.zshrcNależy ponownie pochodzą od tych dwóch polecenia są dodawane do niego z:
$ source ~/.zshrc
Teraz jedną z irytacji w moim systemie jest to, że ta konkretna kombinacja spowodowała, że emulator terminala wydawał sygnał dźwiękowy za każdym razem, gdy polecenie było wydawane, co naprawiłem, wyłączając
'Edit'->'Profile Preferences'->'Terminal Bell' pole wyboru.
FOO=BARto jedno słowo do zsh i 2 słowa do bash. Podobnie, jeśli ustawisz kursor na końcufoo --bari zrobisz alt + backspace, w bash będziesz miał,foo --aw zsh będziesz miałfoo. Zsh dodaje wiele funkcji do bash, ale ma również wiele szalonych ustawień domyślnych do zastąpienia.