เทอร์มินัลอูบุนตูฉันจะ“ แท็บ” (เติมข้อความอัตโนมัติ) ชื่อไฟล์เป็น cmd-style (ตัวเลือกวงจร) ได้อย่างไร?


13

โดยทั่วไปฉันต้องการเปลี่ยนเทอร์มินัลอูบุนตูใช้งานได้เพื่อให้ฉันสามารถวนรอบตัวเลือกทั้งหมดเมื่อแท็บ i (ในแถวบรรทัด cmd) และไม่แสดงรายการตัวเลือกตามค่าเริ่มต้น?

ฉันใช้ bash, ubuntu 9.04 ฉันเห็นความเป็นไปได้บางอย่างใน ".bashrc" แต่ต้องมีใครซักคนที่แก้ไขปัญหานี้แล้วหรือไม่


คุณรู้หรือไม่ว่าถ้ากด Tab สองครั้งคุณจะได้รายการเสร็จสมบูรณ์ที่เป็นไปได้ทั้งหมดใช่ไหม
vava

@vava: คุณกำลังอธิบายถึงคำสั่งที่เป็นไปได้ของ bash ซึ่งมักจะเป็นพฤติกรรมเริ่มต้น คำถามคือวิธีการแทนที่พฤติกรรมนี้ด้วยพฤติกรรมที่จัดทำโดยคำสั่งเมนูสมบูรณ์ของ bash
las3rjock

@ las3rjock ฉันรู้ว่านั่นเป็นเหตุผลที่ฉันออกความคิดเห็นไม่ใช่คำตอบ มีความเป็นไปได้ที่ OP ไม่รู้เกี่ยวกับคุณสมบัตินั้นเนื่องจากดีกว่าโหมดการขี่จักรยาน
vava

@vava: OP อธิบายถึงพฤติกรรมที่เป็นไปได้ของความสำเร็จและระบุว่าเขาต้องการแทนที่ด้วยพฤติกรรมที่สมบูรณ์ของเมนู
las3rjock

@ วาวาฉันรู้วิธีการทำงานของเครื่องและฉันต้องการเปลี่ยนพฤติกรรมที่น่ารำคาญมากนี้
Daniel T. Magnusson

คำตอบ:


16

ตามความคิดเห็นในหน้านี้การวาง

bind '"\t":menu-complete'

ในของคุณ.bashrcควรเปิดใช้งานเสร็จสมบูรณ์แท็บวงกลม

ดูส่วน 8.4.6ของคู่มืออ้างอิง Bashสำหรับข้อมูลเพิ่มเติม


ขอบคุณดีมากหา! - เพียงแค่ชอบความคิดเห็นในหน้านั้น "ฉันใช้เวลาหลายปีในการค้นหาว่า bash รองรับแท็บแบบครบวงจร" - ฮ่า ๆ superuser ชนะ!
Daniel T. Magnusson

ขอบคุณ! เมื่อใช้งานแล้วจะมีการแทนที่คีย์ผสมเพื่อใช้วิธีเก่า ๆ ชั่วครู่หนึ่งหรือไม่? ตัวอย่างเช่น Shift + TAB
Ace

0

สิ่งที่ช่วยชีวิตฉันคือการทุบตีวงจรผ่านความเป็นไปได้แทนที่จะแสดงรายการโง่

เนื่องจาก bash ใช้readlineสำหรับการทำให้สมบูรณ์อัตโนมัติให้เพิ่มบรรทัดต่อไปนี้ลงใน~/.inputrc

เมื่อคุณมีความพึงพอใจและมีการทดสอบอย่างละเอียดด้านล่างแก้ปัญหาไม่กี่วัน / สัปดาห์, ตัดและวาง (ไม่ได้คัดลอก!) การตั้งค่าเดียวกันจาก~/.inputrcการ/etc/inputrcที่มีการตั้งค่าระบบกว้างนี้ทำให้สามารถใช้ได้กับผู้ใช้ทั้งหมดในระบบของคุณ (รวมถึงแขก)

รหัส:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

จากนั้นexitเทอร์มินัลของคุณ (หรือเทอร์มินัลระยะไกลอย่างเช่นผงสำหรับอุดรู) แล้วเปิดอีกครั้ง ...

ตัวอย่าง:

  1. เมื่อคุณมี 3 ไฟล์: file1, file2และfile3และคุณพิมพ์:

    e fTabTabTab

    มันจะวนผ่าน:

    e file1
    e file2
    e file3

    และเมื่อคุณต้องการกลับไปเพียงกดShift+Tab

  2. เมื่อคุณพิมพ์:

    very-complicated-command with lots of command line parameters

    และครั้งต่อไปที่คุณต้องการคำสั่งเดียวกันคุณเพียงพิมพ์:

    very

    และมันจะพิมพ์สำหรับคุณ:

    very-complicated-command with lots of command line parameters

นี่จะช่วยคุณประหยัดเวลาในการทุบตี! ;-)

แหล่ง

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