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 tmux
sự thay thế này là cần thiết đối với tôi, tuy nhiên không có tmux
yê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 cat
và 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ó tmux
OR
[
== 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 bindkey
trong ~/.zshrc
tệ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 ~/.zshrc
cầ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=BAR
là một từ để zsh và 2 từ để bash. Tương tự, nếu bạn đặt con trỏ ở cuốifoo --bar
và 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 đè.