ฉันกำลังใช้ bash และฉันสงสัยว่ามีปลั๊กอินใด ๆ ใน bash หรือ shell อื่น ๆ ซึ่งทำให้ฉันสามารถทำสิ่งนี้
 cat tfnislong.txt+ [tab]เสร็จcat ThisFileNameIsSoLong.txtเหมือนกับแท็บใน Sublime Text
ฉันกำลังใช้ bash และฉันสงสัยว่ามีปลั๊กอินใด ๆ ใน bash หรือ shell อื่น ๆ ซึ่งทำให้ฉันสามารถทำสิ่งนี้
 cat tfnislong.txt+ [tab]เสร็จcat ThisFileNameIsSoLong.txtเหมือนกับแท็บใน Sublime Text
คำตอบ:
ฉันรู้https://github.com/mgalgs/fuzzy_bash_completioncompleteซึ่งเป็นพวงของฟังก์ชั่นเปลือกใช้กับ
ฉันคิดว่าเราน่าจะทำได้ดีกว่านี้เล็กน้อย ถึงเวลาที่จะเปิด. bashrc หรือ. profile ของคุณ
เบ็ดพื้นฐานที่เราใช้คือ:
complete -o nospace -o filenames -F fuzzypath cd ls cat
ตัวเลือก -F หมายถึงใช้ฟังก์ชั่นเปลือกสำหรับแท็บเสร็จที่ตัวเลือกที่ตั้งอยู่ในCOMPREPLYตัวแปร ตัวอย่างเช่น:
ฟังก์ชั่น fuzzypath () {
    ถ้า [-z $ 2] 
    แล้วก็
        COMPREPLY = (`ls ')
    อื่น
        DIRPATH = `echo" $ 2 "| gsed 's | [^ /] * $ ||' `
        BASENAME = `echo" $ 2 "| gsed 's |. * / ||' '
        ตัวกรอง = `echo" $ BASENAME "| gsed 's |. | \ 0. * | g'`
        COMPREPLY = (`ls $ DIRPATH | grep -i" $ FILTER "| gsed" s | ^ | $ DIRPATH | g "`)
    Fi
}
ที่DIRPATHเป็นทุกอย่างก่อนที่ / ที่ผ่านมาบนเส้นทางของคุณที่คุณพิมพ์และกำลังBASENAMEเป็นที่ที่เคอร์เซอร์ของคุณในขณะนี้
FILTERเป็นที่ซึ่งฟัสซีเนสเข้ามาโดยทั่วไปใช้BASENAMEและแทรกตัวอักษร.*ระหว่างตัวละครทุกตัวเพื่อสร้างเรกซ์ฝอยของเรา
ส่วนที่เหลือเป็นเพียงการรวม regex กับ LS COMPREPLYการผลิต findคุณอาจพบสิ่งที่ฉลาดมากขึ้นที่จะทำที่นี่อาจจะมี
ฉันยังพบhttp://fahdshariff.blogspot.com/2011/04/writing-your-own-bash-completion.htmlเพื่อเป็นประโยชน์
คุณอาจพบว่ามีประโยชน์fzf มันเป็นตัวค้นหาฟัซซี่เอนกประสงค์ที่เขียนขึ้นในทับทิมที่สามารถใช้กับรายการสิ่งต่าง ๆ : ไฟล์กระบวนการประวัติคำสั่งกิ่งคอมไพล์ ฯลฯ
สคริปต์การติดตั้งจะตั้งค่าการCTRL-Tโยงคีย์สำหรับเชลล์ของคุณ GIF ต่อไปนี้แสดงวิธีการทำงาน

fzf.. (tput sc) และหลังจากนั้นก็กู้คืนด้วยtput rc..
                    หากต้องการไปพร้อมกับคำตอบอื่น ๆ ของคุณคุณอาจต้องการดู zsh มันใช้งานได้กับ bash ย้อนหลังเพื่อให้คุณสามารถใช้แทนการแทนที่ได้ แต่รองรับคุณสมบัติที่ขยายอย่างมีนัยสำคัญและหนึ่งในนั้นคือการทำให้แท็บบริบทรับรู้ได้รับการปรับปรุงอย่างมาก
zsh คำถามที่พบบ่อยเสร็จจะขยายในกรณีการใช้งาน แต่ฉันเชื่อว่าตามตัวอย่างของคุณคุณจะสนใจCOMPLETE_IN_WORDฟังก์ชั่นมากที่สุด มันไม่ได้เป็นพฤติกรรมที่ต้องการ แต่ใกล้เคียง ประเด็นหลักคือมีหลายวิธีที่จะขยายการทำงานพื้นฐานในวิธีที่เข้าถึงได้ง่ายกว่าการใช้ bash  
นี่คือส่วนขยายการจับคู่แบบคลุมเครือที่จะประมาณสิ่งที่คุณต้องการโดยเฉพาะ การจับคู่ zsh-fuzzy
สำหรับแนวคิดบางอย่างคุณสามารถดูoh-my-zsh framework ที่ได้รับความนิยมซึ่งมีฟังก์ชั่นมากมายสำหรับการจัดการ zsh และขยายมัน มันเป็นมากกว่าที่คุณต้องการส่วนใหญ่ แต่ภายใต้ปลั๊กอินคุณจะสังเกตเห็นสคริปต์การทำให้สมบูรณ์อัตโนมัติสำหรับบทบาทที่หลากหลาย เพื่อให้ได้แนวคิดของความสามารถ
cat Th+tab?