Làm cách nào để định cấu hình Ctrl-Left và Ctrl-Right làm các phím tắt từ trước / tiếp theo cho bash (hiện là alt-b và alt-f)?
Làm cách nào để định cấu hình Ctrl-Left và Ctrl-Right làm các phím tắt từ trước / tiếp theo cho bash (hiện là alt-b và alt-f)?
Câu trả lời:
Câu trả lời đúng phụ thuộc vào thiết bị đầu cuối bạn đang sử dụng.
Đối với Gnome Terminal hoặc các phiên bản gần đây của xterm, hãy đặt cái này vào ~ / .inputrc:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
Đối với PuTTY, hãy đặt cái này trong ~ / .inputrc:
"\eOC": forward-word
"\eOD": backward-word
Đối với rxvt, hãy đặt cái này vào ~ / .inputrc:
"\eOc": forward-word
"\eOd": backward-word
Bạn có thể có thể thoát khỏi việc kết hợp tất cả những thứ đó lại với nhau trong ~ / .inputrc.
Trong mọi trường hợp, bạn cũng cần đặt cái này vào ~ / .bashrc (hoặc ~ / .zshrc):
export INPUTRC=~/.inputrc
Nếu điều đó không hoạt động hoặc bạn có một thiết bị đầu cuối khác, hãy đi đến thiết bị đầu cuối của bạn và nhập Ctrl+ V Ctrl+ ->. Sau đó sử dụng thay vì "\e[1;5C"
hoặc "\eOC"
ở trên. Lặp lại cho Ctrl+ <-.
Lưu ý rằng bạn cần viết các chuỗi thoát bàn phím bằng cú pháp inputrc , vd
\C
có nghĩa là kiểm soát\e
có nghĩa là thoát (xuất hiện như ^[
khi gõ nó bằng Ctrl + V ở trên)"\e[1;5C": forward-word
. Và làm Ctrl
+ V
điều cho Ctrl
+ Left Arrow
quá.
Nếu bạn đang sử dụng ZSH, bạn cần thực hiện một phương pháp khác, bởi vì, trích dẫn các phần có liên quan từ hướng dẫn ZSH của ArchLinux :
Zsh không sử dụng readline #like bash #, thay vào đó, nó sử dụng zle riêng và mạnh hơn.
Nó không đọc / etc / inputrc hoặc ~ / .inputrc.
Sau khi đọc hướng dẫn đó, tôi đã hình dung rằng tôi cần một nguồn ZSH modren để có được ý tưởng chung về cách thực hiện điều này và vì vậy tôi tìm thấy tệp oh-my-zsh này mô tả hành vi tôi muốn, tôi đã sao chép các phần có liên quan muốn vào ~ / .zshrc của tôi:
bindkey -e #Use emacs mode, it's more sane for beginners
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
# Also, If you want to copy paste this into your zshrc,
# I'm pretty sure you would have to add this at the top :
# setopt interactive_comments