ข้อยกเว้นสำหรับคุณสมบัติ zsh correctall?


13

ฉันใช้correctallตัวเลือกในzshและฉันมักจะมีความสุขกับมัน อย่างไรก็ตามมีบางสถานการณ์ที่ฉันพบว่าคุณสมบัตินี้น่ารำคาญอย่างมาก

ตัวอย่างเช่นสมมติว่าฉันมีไฟล์file1.texและฉันต้องการสร้างสำเนาที่เรียกว่าfile2.texซึ่งฉันจะแก้ไขเพื่อทำการเปลี่ยนแปลงบางอย่าง ฉันจะทำ

cp file1.tex file2.tex

เพียงเพื่อจะบอกzshว่าผมอาจจะสะกดผิดและถ้าผมต้องการที่จะแก้ไขมัน file2.texfile1.tex

สิ่งที่เกิดขึ้นคือ: เมื่อzshพยายามตรวจสอบการสะกดคำจะมีการค้นหาในไดเรกทอรีปัจจุบันของไฟล์ที่เรียกว่าfile2.texไม่พบ แต่พบfile1.texและสันนิษฐานว่าฉันสะกดผิดfile1.texและถามฉันว่าต้องการแก้ไขไหม

ที่เกิดขึ้นกับผมจึงมักจะเห็นว่าที่จริงผมล้างค่าตัวเลือกและการใช้งานเท่านั้นcorrectall correctอย่างไรก็ตามพิมพ์ดีดไม่ดีเหมือนฉันฉันพลาดcorrectallตัวเลือกจริงๆ ดังนั้นคำถามของฉัน:

มีวิธีใดที่จะบอกzshไม่ให้แก้ไขอาร์กิวเมนต์สุดท้ายของcpคำสั่งหรือไม่?

(ฉันรู้ว่าฉันสามารถรับผลลัพธ์ที่ต้องการได้โดยการแก้ไขการตั้งค่าความสมบูรณ์cpแต่ฉันยังต้องการให้มีข้อโต้แย้งที่ผ่านมาฉันไม่ต้องการแก้ไขอัตโนมัติอีกครั้ง)


ฉันคิดว่าคุณสามารถรับผลลัพธ์ได้โดยการปรับเปลี่ยนการตั้งค่าความสมบูรณ์cpโดยไม่ต้องทำให้เสร็จ ดูในส่วนเกี่ยวกับzstyleในzshcompsysหน้าคนโดยเฉพาะcorrectionsแท็ก อย่าลืมรายงานกลับหากคุณเข้าใจว่าคำสั่งใดที่จะออก (ฉันไม่ได้)
Gilles 'หยุดความชั่วร้าย'

@Gilles: ขอบคุณ! อย่างน้อยก็จะบอกทิศทางให้ฉันดู ครั้งต่อไปที่ฉันมีไม่กี่วัน (หรืออาจจะเป็นสัปดาห์หรือเป็นเดือน?) โดยไม่ต้องทำอะไรฉันจะดูว่าฉันสามารถเข้าใจได้ไหม :)
ม.ค. Hlavacek

คำตอบ:


14

ลองสิ่งเหล่านี้

alias cp='nocorrect cp '
alias mv='nocorrect mv '
alias mkdir='nocorrect mkdir '

เป็นต้น

ไม่ตรงประเด็นทั้งหมดเพราะจะปิดการใช้งานโปรแกรมแก้ไขทั้งหมดสำหรับคำสั่งทั้งหมด แต่ฉันคิดว่ามันเป็นการประนีประนอมที่ดี ตัวอย่างความสมบูรณ์ (รวมถึงตัวแก้ไข _correct) และส่วนขยายจะยังคงใช้งานได้


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