TAB จะค้นหาตัวเลือกให้สมบูรณ์โดยอัตโนมัติอย่างไร


คำตอบ:


22

ขึ้นอยู่กับคำสั่ง:

  • บางคนอาจเขียนฟังก์ชันเพื่อสร้างข้อโต้แย้งที่เป็นไปได้รวมถึงตัวเลือก คุณจะพบฟังก์ชั่นสำหรับบางคำสั่งใน/etc/bash_completion.d/*(หรือตำแหน่งอื่นในบางระบบ) ฟังก์ชั่นเหล่านี้จะลงทะเบียนกับในตัว (เช่นบอกทุบตีเพื่อเรียกฟังก์ชั่นเมื่อคุณกดบนคำสั่ง) พวกเขาใช้ในตัวเพื่อบอกทุบตี“ นี่คือความสำเร็จที่เป็นไปได้”complete complete -F _find find_findTabfindcompgen
  • สำหรับบางคำสั่ง bash จะเรียกใช้คำสั่งด้วยอาร์กิวเมนต์--helpและแยกวิเคราะห์เอาต์พุต คำสั่งดังกล่าวสามารถลงทะเบียนกับในตัวเช่นcomplete ในความเป็นจริงแล้วเป็นฟังก์ชั่นการสร้างเสร็จสมบูรณ์ที่เกิดขึ้นเพื่อแยกเอาต์พุตของคำสั่งแทนที่จะใช้รายการคงที่ (มีฟังก์ชั่นเสริมความสมบูรณ์อื่น ๆ ที่แยกเอาท์พุทของคำสั่งเพื่อสร้างความสำเร็จที่เป็นไปได้; ดูตัวอย่าง)complete -F _longopt ls_longopt/etc/bash_completion.d/*
  • สำหรับสิ่งต่าง ๆ เช่นนามแฝงฟังก์ชั่นเสร็จสมบูรณ์ค้นหาในตารางภายในของทุบตี completeในตัวมีตัวเลือกสำหรับการที่เช่น-Aสำหรับนามแฝง

10

ลองดูที่ไฟล์

/ etc / bash_completion

และสังเกตไฟล์จากไดเรกทอรี:

/etc/bash_completion.d

คุณจะพบคำตอบ


2

การสนับสนุนสำหรับการทุบตีเสร็จมีให้ใน Debian และ Ubuntu โดยแพคเกจเสร็จสิ้นการทุบตี โดยปกติคุณจะต้องยกเลิกการคอมเม้นต์ต่อไปนี้ใน/etc/bash.bashrcและ / หรือ.bashrcแหล่งที่มาของไฟล์ bash complete ต่อไปนี้มาจาก/etc/bash.bashrc:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

สำหรับสิ่งนี้ในการทำงาน ฉันมักจะไม่แสดงข้อคิดเห็นในทั้งสองอย่าง การจัดการเชลล์แบบโต้ตอบ / ล็อกอินใน Debian นั้นค่อนข้างยุ่ง

ความคิดเห็นที่คล้ายกันน่าจะนำไปใช้กับการแจกแจงอื่น ๆ แม้ว่าพวกเขาอาจเปิดใช้งานการจัดหาโดยค่าเริ่มต้น

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