ฉันจะกำหนดค่า Ctrl-Left และ Ctrl-Right เป็นทางลัดคำก่อนหน้า / ถัดไปสำหรับ bash (ปัจจุบัน alt-b และ alt-f) ได้อย่างไร
ฉันจะกำหนดค่า Ctrl-Left และ Ctrl-Right เป็นทางลัดคำก่อนหน้า / ถัดไปสำหรับ bash (ปัจจุบัน alt-b และ alt-f) ได้อย่างไร
คำตอบ:
คำตอบที่ถูกต้องขึ้นอยู่กับเทอร์มินัลที่คุณใช้
สำหรับเทอร์มินัล Gnome หรือ xterm รุ่นล่าสุดให้ใส่สิ่งนี้ใน ~ / .inputrc:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
สำหรับ PuTTY ใส่สิ่งนี้ใน ~ / .inputrc ของคุณ:
"\eOC": forward-word
"\eOD": backward-word
สำหรับ rxvt ให้ใส่สิ่งนี้ใน ~ / .inputrc ของคุณ:
"\eOc": forward-word
"\eOd": backward-word
คุณอาจหนีจากการรวมทั้งหมดเข้าด้วยกันใน ~ / .inputrc
ในทุกกรณีคุณต้องใส่สิ่งนี้ใน ~ / .bashrc (หรือ ~ / .zshrc) ของคุณ:
export INPUTRC=~/.inputrc
หากไม่ได้ทำงานหรือคุณมีขั้วที่แตกต่างกันไปที่สถานีของคุณและพิมพ์Ctrl+ +V Ctrl ->จากนั้นใช้สิ่งนั้นแทน"\e[1;5C"
หรือ"\eOC"
สูงกว่า ทำซ้ำสำหรับ+Ctrl<-
โปรดทราบว่าคุณต้องเขียนลำดับการหลีกเลี่ยงของแป้นพิมพ์โดยใช้ไวยากรณ์ inputrcเช่น
\C
หมายถึงการควบคุม\e
หมายถึง escape (ซึ่งปรากฏขึ้น^[
เมื่อพิมพ์โดยใช้ Ctrl + V ด้านบน)"\e[1;5C": forward-word
สิ และทำCtrl
+ V
สิ่งสำหรับCtrl
+ Left Arrow
เกินไป
หากคุณใช้ ZSH คุณจะต้องใช้วิธีการอื่นเนื่องจากการอ้างอิงส่วนที่เกี่ยวข้องจากคู่มือ ZSH ของ ArchLinux :
Zsh ไม่ได้ใช้ readline #like bash # แทนจะใช้ zle ของตัวเองและมีประสิทธิภาพมากกว่า
ไม่อ่าน / etc / inputrc หรือ ~ / .inputrc
หลังจากอ่านคำแนะนำนั้นฉันคิดว่าฉันต้องการแหล่ง modren ของ ZSH เพื่อให้ได้แนวคิดทั่วไปเกี่ยวกับวิธีการทำเช่นนี้ฉันจึงพบไฟล์oh-my-zshซึ่งอธิบายพฤติกรรมที่ฉันต้องการฉันคัดลอกส่วนที่เกี่ยวข้องฉัน ต้องการเป็นของฉัน ~ / .zshrc:
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