Zgodnie z różnymi innymi dyskusjami związałem opt+ <-z 0x1b 0x62
i opt+ ->z 0x1b 0x66
. Działa to świetnie w Zsh, ale nie w Tmux.
W tmux opt+ <-przeskakuje backwords na słowo, ale wydaje się także, że wprowadza modyfikację trybu… podczas pisania s
później znak pod kursorem zostanie usunięty.
Mam również problemy z cmd+ ->( 0x05
) i cmd+ <-( 0x01
) - w zsh te klawisze nawigują do końca i początku linii, ale w tmuxie to wcale nie działa.
Nie sądzę, że istnieją jakieś skróty klawiszowe dla tych kodów szesnastkowych, więc zakładam, że coś gubi się na drodze z iTerm2 do tmux… Bezpośrednie wywołanie read
zsh i tmux powoduje wyświetlenie tych samych kodów dla optwspomnianych powyżej powiązań, ale nie cmdwypisuje cokolwiek dla powiązań w tmux.
Edytować:
Eksperymentowałem jeszcze trochę i odkryłem, że wiązania działają dobrze, gdy używasz / bin / bash w tmux i psują się tylko podczas używania zsh w tmux. Nawet przetestowałem / bin / zsh bez ładowania .zshrc, aby sprawdzić, czy coś jest nie tak z homebrews zsh, ale powiązania również tam są zerwane. Wygląda na to, że jest to problem z zsh.
Edytować:
Więcej eksperymentów! Wydaje się, że jest to związane ze zmienną środowiskową $ TERM, która jest ustawiona na „screen-256color” przez mój plik .tmux.conf - wydaje się to poprawne, aby kolory działały, ale gdy tylko zsh uruchomi się z tą zmienną środowiskową, nawigacja przestaje działać. Uruchomienie TERM=screen-256color zsh
odtwarza problem.
bindkey -e
używałeś po uruchomieniu Zsh bez .zshrc? W przeciwnym razie nie działa nawet w zwykłym terminalu.Odpowiedzi:
Wygląda na to, że w końcu znalazłem odpowiedź! A raczej obejście, ponieważ wciąż nie jestem pewien, co dokładnie dzieje się nie tak.
Jawne skonfigurowanie skrótów klawiszowych do nawigacji po słowach rozwiązało problem:
Może zsh używa różnych skrótów klawiszowych opartych na $ TERM.
źródło