Tôi không thể nói cho iTerm nhưng đây là những yếu tố chính tôi đã sử dụng để giải quyết vấn đề này trong Gnome Terminal, trên Fedora 19, chạy ZSH 5.0.7 với Oh-my-zsh:
bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word
trong đó \e== Chuỗi thoát khóa (như được ghi trong mục 4.1.1 )
và [== O(chữ hoa O; như được ghi trong mục 4.2.1 ), trong một số trường hợp. Ví dụ, theo tmuxsự thay thế này là cần thiết đối với tôi, tuy nhiên không có tmuxyêu cầu thì không có sự thay thế nào được thực hiện và [==[
Các mã khóa cho một chuỗi có thể được lấy bằng cách sử dụng catvà nhấn vào chuỗi mong muốn. Ví dụ, kết quả của việc nhấn <Alt+Right>nên được diễn giải như vậy:
$ cat
^[[1;3C
^[== \e== Chuỗi khóa thoát
[== [không có tmuxOR
[== O(chữ hoa o) vớitmux
1;3 == Tôi không chắc về cái này, nhưng nó có nghĩa logic <Alt>
C == Phím mũi tên phải
Sau đó, chuỗi này được đưa vào bindkeytrong ~/.zshrctệp để duy trì, như là đối số đầu tiên và bị ràng buộc , có nghĩa là tổ hợp phím trong đối số sẽ thực thi một lệnh soạn thảo cụ thể (hoặc tiện ích theo thuật ngữ zsh), cho tiện ích đầu tiên dòng của ví dụ trên là forward-word.
Các ~/.zshrccần được tái nguồn gốc sau khi hai lệnh dưới đây được nối thêm vào nó với:
$ source ~/.zshrc
Bây giờ một điều khó chịu trên hệ thống của tôi là sự kết hợp đặc biệt này đã khiến trình giả lập thiết bị đầu cuối phát ra tiếng bíp mỗi khi lệnh được ban hành, điều này tôi đã khắc phục bằng cách vô hiệu hóa
'Edit'->'Profile Preferences'->'Terminal Bell' hộp kiểm.
FOO=BARlà một từ để zsh và 2 từ để bash. Tương tự, nếu bạn đặt con trỏ ở cuốifoo --barvà thực hiện alt + backspace, trong bash bạn sẽ cófoo --và trong zsh bạn sẽ cófoo. Zsh thêm rất nhiều tính năng cho bash, nhưng nó cũng có nhiều mặc định điên rồ để ghi đè.