ปิดการใช้งาน zsh แก้ไขอัตโนมัติทั้งหมด


3

คุณปิดการใช้งาน zsh แก้ไขอัตโนมัติทั้งหมดได้อย่างไร?

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

ฉันควรทราบว่า 'unsetopt correctall' ดูเหมือนจะไม่ทำอะไรให้ฉันเลย

collin@mandalay ~
  % unsetopt correctall

collin@mandalay ~
  % lear
zsh: correct 'lear' to 'clear' [nyae]? n
zsh: command not found: lear

คำตอบ:


3

ใน. zshrc ของคุณ

 #disable auto correct
 unsetopt correct_all

จาก manpage ของ zsh (zshoptions):

   CORRECT (-0)
          Try to correct the spelling of commands.  Note that, when the HASH_LIST_ALL option is not set or when some directories in the  path  are  not
          readable, this may falsely report spelling errors the first time some commands are used.

   CORRECT_ALL (-O)
          Try to correct the spelling of all arguments in a line.

ดังนั้นตัวเลือกที่ถูกต้องจะแก้ไขเฉพาะคำสั่งที่ไม่ได้ขัดแย้งในบรรทัด

corect_allตัวเลือกที่จะแก้ไขคำสั่งและการขัดแย้งทั้งหมดที่อยู่ในสาย


สิ่งนี้ไม่ถูกต้อง correct_all จะปิดใช้งานการแก้ไขอัตโนมัติสำหรับตัวเลือกเท่านั้นไม่ใช่สำหรับคำสั่งด้วยตนเอง ดูตัวอย่างที่นี่: yountlabs.com/automation/disable-autocorrect-in-zsh
Collin Peters

ฉันปรับปรุงคำตอบของฉัน (ลืมเข้าสู่ระบบในขณะที่แก้ไข)
Atropo

นั่นไม่ใช่วิธีการทำงานสำหรับฉัน ฉันใช้ zsh 4.3.17 ดูโพสต์เริ่มต้นของฉัน 'unsetopt correctall' (correct_all และ correctall เทียบเท่า) จากนั้นพิมพ์ 'lear' แทนผลลัพธ์ 'clear' ในการแจ้งเตือนอัตโนมัติที่ถูกต้อง ดูเหมือนว่าชื่อ 'correct_ all ' นั้นทำให้เข้าใจผิด ขึ้นอยู่กับคำอธิบายว่า "พยายามแก้ไขการสะกดของข้อโต้แย้งทั้งหมดในบรรทัด '
Collin Peters

@Collin เรื่องคำสั่งโหลด มันใช้งานได้สำหรับฉันเมื่อฉันย้ายไปที่ด้านล่างหลังจาก oh-my-zsh
oma

2

Ahhhh !! ... ฉันเห็นว่าฉันควรจะใช้ 'unsetopt correct' แทน correct_all

collin@mandalay ~
  % unsetopt correct

collin@mandalay ~
  % lear
zsh: command not found: lear

0

นอกจากนี้หากคุณไม่สามารถแก้ไข. zshrc หรือ. zsenv ของคุณ (ฉันพูดเกี่ยวกับ. zsenv เพราะบางคำตอบภายนอกโพสต์นี้พูดคุยเกี่ยวกับการแก้ไขไฟล์นี้แม้ว่าจะเห็นความคิดเห็นเริ่มต้นในไฟล์ดูเหมือนว่า. zshrc เป็นสิ่งที่ถูกต้อง):

คุณสามารถแก้ไข. zshrc.user ของคุณ ฉันใส่มัน:

#Disable autocorrect
unsetopt correct_all
unsetopt correct
DISABLE_CORRECTION="true" 

นี่อาจจะซ้ำซ้อน (บรรทัดสุดท้าย)


0

ในกรณีที่คุณกำลังใช้การกำหนดค่า grml (และลืมไปอย่างใด): เพิ่มบรรทัดต่อไปนี้ใน. zshrc.pre หรือ. zshrc.local ของคุณ:

NOCOR = 1

วิธีการปกติคือตามที่ผู้อื่นกล่าวถึงเพื่อใช้unsetopt correct_allและ / หรือunsetopt correct- แต่สิ่งนี้ถูกแทนที่โดยการกำหนดค่า grml

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