ฉันมีฟังก์ชั่นเชลล์สองแบบที่กำหนดไว้ใน.zshrc
บันทึกซึ่งพิมพ์และอนุญาตให้รวมกับหน้าจอ ตัวอย่างเช่น:
function s()
{
screen -t "$1" ssh "$@"
}
อย่างไรก็ตามเมื่อฉันใช้ฟังก์ชั่นเชลล์เหล่านี้ฉันไม่สามารถใช้ประโยชน์จากคุณลักษณะการสร้างคำสั่งของ zsh ได้อย่างสมบูรณ์ (ในกรณีของ SSH ให้กรอกชื่อโฮสต์โดยอัตโนมัติตามที่รู้จักกันว่า host_hosts และ ssh_config) วิธีที่ต้องการในการเชื่อมโยงไปยังกลไกความสมบูรณ์ที่มีอยู่สำหรับคำสั่งที่ฉันสร้าง wrappers คืออะไร
แก้ไข:
ขอบคุณ Gilles สำหรับคำตอบของเขาด้านล่าง การใช้ compdef ดูเหมือนจะเป็นวิธีการทำเช่นนี้ แต่น่าสนใจว่ามันไม่ทำงานอย่างสม่ำเสมอ ในกรณีนี้ฉันมีการตั้งค่าต่อไปนี้:
function s()
{
screen -t "$1" ssh "$@"
}
function m()
{
screen -t "man.$1" man "$1"
}
compdef $_comps[man] m
compdef $_comps[ssh] s
ความสมบูรณ์ของฟังก์ชั่น wrapper ของฉันทำงานได้อย่างที่คาดไว้อย่างไรก็ตามความสมบูรณ์ของฟังก์ชั่นของฉันไม่ทำงาน แทนที่จะพยายามทำชื่อโฮสต์ให้สมบูรณ์ดูเหมือนว่าจะย้อนกลับไปที่การเติมข้อความอัตโนมัติเริ่มต้นด้วยการให้รายชื่อไฟล์เมื่อฉันกด 'แท็บ' มีความผิดปกติบ้างไหมในวิธีการจัดการความสมบูรณ์ของ SSH ซึ่งหมายความว่าฉันต้องทำอะไรต่อไปหรือไม่?