ฉันจะทำให้ปุ่ม Ctrl - ลูกศรเคลื่อนที่ไปข้างหน้า / ถอยหลังคำในแต่ละครั้งใน Cygwin ทุบตีได้อย่างไร


97

ในการติดตั้ง Cygwin เริ่มต้นการใช้ CTRL-LEFTARROW หรือ CTRL-RIGHTARROW เพียงพิมพ์ 5C หรือ 5D แทนการข้ามคำในแต่ละครั้งตามที่คาดไว้

ปุ่ม Home / End ทำงานอย่างถูกต้องดังนั้นควรทำการแมปใหม่


โปรดทราบว่าคำถามนี้เน้นที่ Cygwin แต่สามารถมีแอปพลิเคชันทั่วไปสำหรับระบบ Unix / Linux หากคุณกำลังใช้ฉาบและพบว่าโซลูชั่นที่นี่ไม่ได้ทำงานให้คุณดูที่คำถามเฉพาะเกี่ยวกับสิ่งที่รหัสเพื่อใช้สำหรับการฉาบ
palswim

เรื่องนี้เกิดขึ้นกับฉันภายใต้ลินุกซ์เต็มรูปแบบ ในคำแนะนำออนไลน์ฉันเพิ่ม~/.inputrcไฟล์ - ซึ่งทำให้โมฆะทั้งหมดเป็นค่าเริ่มต้นของลินุกซ์ คุณสามารถรับมันกลับมาได้โดยเพิ่ม$include /etc/inputrcที่ด้านบนของ ~ / .inputrc ของคุณ (สมมติว่า / etc / inputrc เป็น inputrc ทั่วทั้งระบบของคุณซึ่งมันใช้งานบน Linux Mint)
user208769

คำตอบ:


133

พบวิธีแก้ปัญหาโพสต์ไว้ที่นี่เพื่อลูกหลาน

เพิ่มบรรทัดต่อไปนี้ใน~/.inputrc( C:\cygwin\home\<username>\.inputrc):

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

เมื่อเสร็จแล้วคุณสามารถกดC-x C-rเพื่ออ่าน.inputrcไฟล์อีกครั้งสำหรับเซสชันปัจจุบัน

สิ่งที่ควรทราบหากคุณต้องการการปรับแต่งอื่น ๆ ที่คล้ายกัน: ใช้5Aและ5Bสำหรับลูกศรขึ้นและลงและ2xสำหรับเวอร์ชันที่เลื่อน

การแม็พคีย์ "เป็นทางการ" มีการอธิบายไว้ในคู่มืออ้างอิง Bashแต่สำหรับวิธีที่รวดเร็วในการค้นหาการจับคู่คีย์ใน bash:

  1. พิมพ์Ctrl+V
  2. พิมพ์ลำดับคีย์ที่คุณสนใจ (เช่นAlt+ ) สิ่งนี้จะพิมพ์^[[1;3C
  3. ลบผู้นำ^[และแทนที่ด้วย\eเพื่อให้\e[1;3C
  4. วางค่านี้ใน.inputrcไฟล์ของคุณ

รหัสแป้นพิมพ์บางรหัสไม่แสดงเช่น <kbd> Shift </kbd> + <kbd> Enter </kbd> ฉันจะค้นหารหัสแป้นพิมพ์เหล่านี้ผ่านทาง Mintty / Windows / Cygwin ได้อย่างไร
CMCDragonkai

14

คุณสามารถโหลดไฟล์. inputrc ผ่านทาง:

bind -f ~/.inputrc

แหล่ง


2
สิ่งนี้มีประโยชน์ แต่ไม่ใช่คำตอบสำหรับคำถาม - อาจเป็นความเห็นที่ดีสำหรับคำตอบอื่นหรือไม่
Martin Thompson

เพิ่มคำตอบของ @ Tom ข้างบนแล้ว
dovetalk

7

ในกรณีที่คุณต้องการบางสิ่งที่จะทำงานโดยไม่มีการตั้งค่าสภาพแวดล้อมแบบกำหนดเองตัวอย่างเช่นเมื่อทำงานกับบัญชีที่ใช้ร่วมกันบนเซิร์ฟเวอร์หรือเพียงเพื่อ จำกัด จำนวนของการกำหนดค่าแบบกำหนดเองที่ใช้ Bash มีระบบภายในสำหรับ Cygwin

คือAlt+ fเพื่อเลื่อนไปข้างหน้าและAlt+ bเพื่อเลื่อนไปข้างหลัง

http://www.gnu.org/software/bash/manual/html_node/Commands-For-Moving.html


4
ขอบคุณแม้ว่าฉันรู้ถึงกุญแจเหล่านั้นและใช้มัน ฉันแค่ใช้ปุ่มลูกศรเมื่อสะดวกและไม่ต้องการให้พวกเขาพ่นรหัสหลบหนีแทนที่จะทำสิ่งที่มีสติและย้ายเคอร์เซอร์
Tom

0

เมื่อใช้ rxvt กับ Cygwin ผมพบว่าวิธีการแก้ปัญหาที่ลิงค์นี้ทำงานสำหรับฉัน: control_arrow_keys_in_rxvt

เพิ่มบรรทัดต่อไปนี้~/.inputrc:

"\eOd": backward-word
"\eOc": forward-word

นั่นคือเมื่อเลเยอร์เพิ่มเติมกำลังเปลี่ยนคีย์ส่ง (แต่ไม่ตอบคำถามที่ถาม)
Nikana Reklawyks

0

วิธีการแก้ปัญหานี้ยังทำงานในmsys2คอนโซล:

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

เพียงวางคีย์ผสมเหล่านี้ใน.inputrcไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.