เลือกชื่อไฟล์ Unicode ใน Bash


9

ตกลง; สมมติว่าฉันอยู่ใน Bash และฉันมีหลายไฟล์ในโฟลเดอร์ หลายคนมีชื่อfile☠☡☢☣.txtที่☠☡☢☣เริ่มต้นด้วยตัวอักษร unicode untypable บ้า ฉันจะอ้างถึงหนึ่งในนั้นได้อย่างไร กดแท็บเสร็จสมบูรณ์อัตโนมัติเท่านั้นfileแล้วต้องการให้คุณพิมพ์ตัวละครบ้า มีวิธีบอกทุบตี "เลือกอันที่ 3 ในรายการที่คุณเพิ่งให้ฉัน"?

คำตอบ:


9

ผมขอแนะนำให้คุณหลีกเลี่ยงมันและใช้ชนิดของกุญแจอีกดอกหนึ่งที่มีผลผูกพันกับ ReadLine เช่น+Shift TABเพิ่มสิ่งต่อไปนี้ในของคุณ~/.inputrc:

"\e[Z": menu-complete

จากนั้นออกexec bash(ควรอ่านการตั้งค่าในของคุณ~/.inputrc) bind '"\e[Z": menu-complete'ในฐานะที่เป็นหนึ่งออกแทนการรีสตาร์ททุบตีคุณสามารถตั้งค่าเดียวกันผูกพันโดยการเรียกใช้

ตอนนี้คุณควรจะสามารถใช้ShiftTABลำดับที่ซ้ำกันเพื่อวนรอบชื่อไฟล์ที่ตรงกัน (แทนที่จะต้องป้อนอักขระที่ตรงกันถัดไป) นี้จะทำงานสำหรับคำสั่งใด ๆ ที่ออก (เป็นมันเป็นคำสั่งอ่านบรรทัดมาตรฐานที่ถูกผูกไว้กับShiftTABลำดับ) ดังที่บันทึกไว้โดย OP สิ่งนี้ไม่ส่งผลกระทบต่อลักษณะการทำงานมาตรฐานของTABคีย์ แต่เพิ่งเพิ่มฟังก์ชันการทำงานของ ShiftTABคอมโบ


แก้ไขเพื่อพูดถึงการใช้งานexec bashเนื่องจากเป็นขั้นตอนสำคัญในการทำให้ใช้งานได้! ;)
Drav Sloan

ขอบคุณ! สำหรับทุกคนที่สงสัยนี้ดูเหมือนจะไม่เปลี่ยนฟังก์ชั่นปกติ มันเพิ่งเพิ่มคำสั่งผสมคีย์แท็บ shift
Erhannis

ถูกต้องโปรดทิ้งรหัสแท็บของฉันไว้คนเดียว !! :) ฉันเสียใจถ้าเปลี่ยนไป: D
Drav Sloan

3

อีกวิธีหนึ่งที่ใช้งานได้คือการใช้?หรือการเติม*สัญลักษณ์แทนแล้วพิมพ์ส่วนที่เหลือของ "เนื้อหา" จนกว่าคุณจะได้รับการจับคู่ที่ไม่ซ้ำกับการกรอกแท็บ


2

ไปที่ไดเรกทอรีที่มีและป้อนfile☠☡☢☣.txt ls -iคุณจะเห็นบรรทัด:

xxxxx file☠☡☢☣.txt

ที่เป็นหมายเลขดัชนีของxxxxx file☠☡☢☣.txtEnter:

find . -maxdepth 1 -inum xxxxx -exec /bin/mv -i {} bettername.txt \;

ที่อยู่บนเส้นก่อนเป็นจำนวนดัชนีดังกล่าวที่ได้รับจากxxxxx ls -iเปลี่ยนชื่อนี้เป็นfile☠☡☢☣.txtbettername.txt

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