ไฟล์ ~ / .inputrc ไม่ได้รับการจัดหาอย่างถูกต้อง


14

ฉันมีไฟล์ ~ / .inputrc ที่ฉันสร้างขึ้นสำหรับการเชื่อมโยงคีย์บางอย่าง

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C":forward-word
"\e[1;5D":backward-word
"\e[5C":forward-word
"\e[5D":backward-word
"\e\e[C":forward-word
"\e\e[D":backward-word

เมื่อใดก็ตามที่ฉันพยายามเรียกใช้source ~/.inputrcมันทำให้ฉันมีข้อผิดพลาดต่อไปนี้:

\ e [1; 5C: ไปข้างหน้าคำ: ไม่พบคำสั่ง \ e [1; 5D: คำย้อนหลัง: ไม่พบคำสั่ง \ e [5C: ไปข้างหน้าคำ: ไม่พบคำสั่ง \ e [5D: ย้อนหลังคำ: ไม่พบคำสั่ง \ e \ e [C: ไปข้างหน้าคำ: ไม่พบคำสั่ง \ e \ e [D: backward-word: ไม่พบคำสั่ง

มันยังไม่ทำงานเมื่อฉันเปิดเทอร์มินัลใหม่ฉันไม่ได้รับข้อผิดพลาด แต่การกดคีย์ ctrl ของฉันไม่ทำงานในเทอร์มินัลใหม่เช่นกัน ฉันสร้างไฟล์นี้ด้วยตนเองเนื่องจากฉันไม่สามารถเข้าถึงรูทเพื่อเปลี่ยน / etc / inputrc ได้ ใครช่วยฉันออกได้ไหม ขอบคุณ

แก้ไข: ฉันลองไฟล์โดยมีช่องว่างหลังเครื่องหมายโคลอน (:) ลงชื่อด้วย มันไม่ทำงาน ฉันยังพยายามทำให้มันใช้งานได้ (chmod + x ~ / .inputrc) ไม่ทำงาน

แก้ไข: ฉันรู้ว่าขั้นตอนนี้ใช้สำหรับ 'ทุบตี' เท่านั้นและฉันกำลังเรียกใช้ 'tcsh' สำหรับ 'csh' ให้ใช้.bindingsไฟล์แทน.inputrcไฟล์และใช้bindkeyไวยากรณ์

คำตอบ:


12

สำหรับ bash จะทำการรีโหลดตอนนี้เป็นการแมปที่กำหนดไว้ในปัจจุบัน

bind -f  ~/.inputrc

จะbindรับคำสั่งจากที่ไหน?
danijar

ผูกเป็นตัวเชลล์ คุณใช้ระบบปฏิบัติการอะไร
พอล

ฉันใช้ Debian กับ zsh
danijar

สิ่งนี้ไม่ได้ผลสำหรับฉันกับ bash บน RHEL 7. การเชื่อมโยง. inputrc ของฉันยังคงไม่สามารถโหลดซ้ำได้หลังจากเรียกใช้คำสั่งนี้
user5359531

@ user5359531 เป็นไปได้ไหมว่าการผูกก่อนหน้านี้ของคุณไม่ใช่ "ยกเลิกการโหลด" (หากพวกเขาไม่ได้ตั้งไว้อย่างชัดเจนพวกเขาจะยังคงเหมือนเดิม) หรืออาจเป็นอย่างอื่นเช่น ~ / .inputrc ของคุณไม่ได้$include /etc/inputrc?
mwfearnley

6

.inputrcไฟล์ไม่ไฟล์ที่จะต่อ sourced ควรพิจารณาโดยอัตโนมัติbashหรือซอฟต์แวร์อื่น ๆ โดยใช้ห้องสมุด readline หากวิธีนี้ใช้ไม่ได้ผลให้เพิ่มช่องว่างหลังโคลอนเช่น

"\e[1;5C": forward-word

(ฉันเคยเห็นช่องว่างในไฟล์กำหนดค่านี้เสมอ)


1
+1 เน้น "ซอฟต์แวร์อื่น ๆ ที่ใช้ไลบรารี readline" .inputrcไม่ใช่เชลล์สคริปต์ มันเป็นreadlineไฟล์กำหนดค่า
chepner

จริงๆแล้วนั่นเป็นวิธีที่ฉันมีมันก่อนและฉันเปลี่ยนเป็นไม่มีที่ว่างเพียงเพื่อลอง มันไม่ทำงานทั้งสองทาง ฉันได้เพิ่มเข้าไปในการแก้ไข ขอบคุณ
rrlamichhane

5

ปุ่มลัดและไฟล์ที่โพสต์ในคำถามสำหรับ~/.inputrc bashสำหรับcsh(หรือtcsh) ใช้ไฟล์~/.bindingsและใช้ไวยากรณ์ต่อไปนี้

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

ตระหนักถึงสิ่งนี้หลังจากที่ googling


ไม่ว่าจะด้วยเหตุผลใด Tsch ของฉันก็เพิกเฉยต่อไฟล์. ผูก การเพิ่มไฟล์source ~/.bindingsของฉัน~/.cshrcแก้ไขสิ่งนี้
drmuelr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.