ทำให้แท็บเสร็จสมบูรณ์แล้วเติมในแมตช์แรก?


11

มีวิธีใดบ้างที่จะทำให้ BASH เติมในการแข่งขันครั้งแรกเมื่อฉันกด TAB ชนิดของพรอมต์คำสั่งของ Windows

(มันควรจะยังคงแสดงรายการของการแข่งขัน แต่มันควรจะวนรอบพวกเขาเมื่อฉันกดที่แท็บ)

นั่นคือเป้าหมายที่นี่เพื่อให้สามารถเติมเต็มการแข่งขันใด ๆ ที่มีเพียงปุ่ม TAB ให้กดพอเช่นใน Windows

คำตอบ:


15

เพิ่มสิ่งต่อไปนี้ใน.inputrcไฟล์ของคุณ(ตำแหน่งที่แน่นอนจะแตกต่างกันระหว่างระบบ):

"\C-i": menu-complete

แผนที่นี้จะจับคู่ TAB กับเมนูซึ่งการจับคู่แรกจะเสร็จสมบูรณ์โดยอัตโนมัติ

จากนั้นเพิ่ม (หรือไม่ใส่show-all-if-ambiguousเครื่องหมายข้อคิดเห็น) นี่จะแสดงรายการความสำเร็จที่เป็นไปได้ของการกด TAB ครั้งแรก

หรือคุณสามารถตั้งค่าเมนูให้สมบูรณ์ต่อเซสชัน (โดยไม่ต้องแก้ไข.inputrc) โดยทำ

bind '"\C-i" menu-complete'

ไม่นั่นไม่ได้มีอะไรเหมือนพรอมต์คำสั่ง Windows :-)
user541686

@ Mehrdad: แก้ไขแล้วฉันหวังว่าฉันจะได้รับตอนนี้
Philomath

+1 เกือบ !!! เป็นสิ่งที่ฉันต้องการ แต่มีวิธีใดบ้างที่จะทำเช่นนั้นและแสดงเมนูหากมันไม่ชัดเจน? (มันอาจจะขอมากเกินไปฉันรู้ แต่ฉันหวังว่ามันจะเป็นไปได้)
user541686

@ Mehrdad: ถ้ามันเป็นสิ่งที่คุณต้องการยอมรับมันช่วยให้ผู้คนได้รับคำตอบที่ถูกต้องอย่างรวดเร็ว สำหรับคำขอใหม่ของคุณจะทำทั้งสองในครั้งเดียวผมไม่เชื่อว่ามันเป็นไปได้ แต่ใครจะรู้? ... คุณสามารถ แต่ผูกmenu-completeคีย์ลำดับอื่นเช่น"\M-s"สำหรับMeta+Sเพื่อให้คุณสามารถเลือกที่จะ
Philomath

1
คุณรู้อะไรไหม? ดูเหมือนว่าจริง ๆ แล้วมันทำสิ่งที่ฉันต้องการ: ครั้งแรกที่แสดงเมนูแล้วปั่นผ่านตัวเลือก! ฉันไม่คิดว่าฉันเห็นสิ่งนี้ในคอมพิวเตอร์เครื่องแรกที่ฉันลอง (บางทีฉันอาจไม่ได้ใส่ใจ) แต่ดูเหมือนว่าจะทำงานได้อย่างสมบูรณ์แบบ! :) (แก้ไข: ดูเหมือนว่าคุณจำเป็นต้องใช้ทั้งการตั้งค่านี้และ show-all-if-ambiguousเพื่อให้สามารถทำงานได้)
user541686

4

แม้ว่าฉันไม่รู้เกี่ยวกับการใช้ฟังก์ชันนี้เพื่อทำงานกับ bash แต่ zsh มาพร้อมกับการตั้งค่าตามที่คุณต้องการโดยค่าเริ่มต้น ตรวจสอบOh-My-zshและzsh

zsh มีคุณสมบัติส่วนใหญ่ของ bash พร้อมฟังก์ชั่นที่เพิ่มเข้ามาบางส่วนเช่นความสามารถในการนำทางด้วยแท็บและป้อนเท่านั้น!

การแจกแจงลินุกซ์ส่วนใหญ่มาพร้อมกับแพ็คเกจสำหรับการติดตั้ง zsh


1
... โอ้ zsh ของฉัน !! นั่นเป็นเรื่องที่น่าสนใจฉันจะดูมัน ... มันอาจจะหรืออาจจะไม่ทำในสิ่งที่ฉันต้องการ
user541686

ดีใจที่ฉันสามารถช่วย คุณใช้การกระจายแบบใด ฉันสามารถให้คำตอบเชิงลึกกับคุณมากขึ้นด้วยคำแนะนำเกี่ยวกับวิธีการติดตั้ง zsh และโอ้ zsh ของฉัน
Chris Knadler

+1 ฉันติดตั้ง zsh ดูเหมือนว่ายอดเยี่ยมมาก! หากฉันไม่พบปัญหาใด ๆ ฉันก็อาจจะยอมรับเช่นนี้ด้วยขอบคุณ! :) (ฉันใช้ Ubuntu btw.)
user541686

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