Điều này cũng khiến tôi phát điên, tuy nhiên tôi không muốn sửa lỗi dành riêng cho Terminal vì tôi không sử dụng Terminal và để có thể SSH vào hộp OSX của tôi cũng phải sử dụng các phím bấm chính xác.
Ngoài ra, cá nhân tôi không quan tâm đến ⌥chìa khóa như đã thảo luận trước đó; Tôi muốn duy trì kết hợp ctrl+ ←/ →mà tôi đã sử dụng trên Linux.
Để giải quyết vấn đề này, tôi đã thêm vào như sau ~/.profile
:
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'
Lưu ý hai cái đầu tiên áp dụng cho bash trong Terminal ; hai cái cuối cùng áp dụng cho bash trong iTerm2 và các kết nối ssh đến . Đừng hỏi tôi tại sao mô phỏng bàn phím lại khác;)
Đối với bản ghi, tôi có thể tìm thấy mã khóa thực sự là gì nhờ một gợi ý từ câu trả lời stackoverflow này : Bạn có thể chạy cat > /dev/null
để theo dõi các mã phím chính xác được gửi trong một tổ hợp phím.
(Lưu ý rằng đối với tôi, khi tôi chạy cat > /dev/null
và nhấn ctrl+ ←nó tạo ra ^[[1;5D
. Mã khóa chính xác của bạn có thể khác nhau , nhưng mã đầu tiên ^[
được thể hiện như \e
, như trong mã ví dụ của tôi.)
BTW, nếu bạn muốn xem tất cả các phím bấm bash đang hoạt động, hãy chạy bind -p
.