Nonaktifkan sepenuhnya koreksi otomatis zsh

3

Bagaimana Anda menonaktifkan koreksi otomatis zsh sepenuhnya?

Saya mengetahui opsi 'nocorrect' yang hanya berlaku untuk perintah tertentu. Tapi saya ingin sepenuhnya agar ketika saya mengetik 'lear' bukan 'clear', itu tidak akan meminta koreksi.

Saya harus mencatat bahwa 'unsetopt correctallall' sepertinya tidak melakukan apa-apa untuk saya

collin@mandalay ~
  % unsetopt correctall

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

Jawaban:

3

Di .zshrc Anda

 #disable auto correct
 unsetopt correct_all

Dari halaman manual 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.

Jadi yang benar pilihan akan memperbaiki HANYA perintah tidak argumen pada baris.

The corect_all pilihan akan memperbaiki perintah DAN semua argumen di telepon.

Atropo
sumber
Ini salah. correct_all akan menonaktifkan koreksi-otomatis hanya untuk opsi, bukan untuk perintah itu sendiri. Lihat di sini untuk contoh: yountlabs.com/automation/disable-autocorrect-in-zsh
Collin Peters
Saya meningkatkan jawaban saya (lupa login saat mengeditnya).
Atropo
Itu bukan cara kerjanya untuk saya. Saya menggunakan zsh 4.3.17. Lihat posting awal saya. 'unsetopt correctall' (correct_all dan correctall adalah setara) kemudian mengetik 'lear' alih-alih hasil 'clear' di prompt koreksi otomatis. Sepertinya nama 'correct_ all ' menyesatkan. Berdasarkan uraian itu tertulis "Coba perbaiki ejaan semua argumen dalam satu baris '
Collin Peters
@ Collin, memuat hal-hal pesanan. Ini bekerja untuk saya ketika saya memindahkannya ke bawah, setelah oh-my-zsh
oma
2

Ahhhh !! ... Saya melihat bahwa saya seharusnya menggunakan 'unsetopt correct' alih-alih correct_all

collin@mandalay ~
  % unsetopt correct

collin@mandalay ~
  % lear
zsh: command not found: lear
Collin Peters
sumber
0

Juga, jika Anda tidak dapat memodifikasi .zshrc atau .zhsenv Anda (saya berbicara tentang .zhsenv karena beberapa jawaban di luar posting ini berbicara tentang memodifikasi file ini, walaupun melihat komentar default dalam file sepertinya .zshrc adalah yang benar):

Anda dapat memodifikasi .zshrc.user Anda. Saya memasukkannya:

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

Ini mungkin berlebihan (baris terakhir)

Kharski
sumber
0

Jika Anda menggunakan konfigurasi grml (dan entah bagaimana sudah lupa): tambahkan baris berikut ke .zshrc.pre atau .zshrc.local:

NOCOR = 1

Metode normal adalah, seperti yang disebutkan oleh orang lain, untuk menggunakan a unsetopt correct_alldan / atau unsetopt correct- tetapi ini ditimpa oleh konfigurasi grml.

zTricky
sumber