Yazım hatalarını otomatik düzeltme


19

İle yazım denetimini açtım

:set spell spelllang=en_us

Şimdi yazarak bir kelimenin yazımını düzeltebilirim 1z=(yani, 1yazım düzeltmesini ( z=) seçin).

Boşluk yazdığımda gecikme olmadan bunu otomatik olarak önceki kelimede nasıl çalıştırabilirim? Ayrıca zaten doğru yazılmış sözcükleri "düzeltmeye" çalışır (bu yüzden böyle bir şey yapamam inoremap <space> <esc>mmb1z=`ma<space>), bu yüzden sadece yanlış yazılmışsa yazdığım her kelimeyi düzeltmek istiyorum .

Vim'de yanlış yazılan kelimeleri otomatik olarak düzeltmenin bir yolu var mı?


2
Bkz bu
Arturo Volpe

1
@ArturoVolpe Bu soruya meşru bir cevap gibi görünüyor.
bsmith89

Önceki '[s' hatasını yeniden eşleştirebilir misiniz? Ben cevap olarak eklemek istiyorum ama remap nasıl yapacağımı bilmiyorum, bu yüzden başka biri için bırakacağım.
Nick J Adams

Yanıtlar:


8

İki nedenden ötürü, yanlış işaretlenmiş her kelimeyi otomatik olarak düzeltmeye karşı öneriyorum.

  • İlk olarak, özellikle daha teknik yazımda yazmak istediğiniz şeylerle ilgili çok sayıda yanlış pozitif elde edersiniz. Kesinlikle tanınmaları ve önerilmesi için bu ikisini sözlüğünüze ekleyebilirsiniz (ve belki de eklemelisiniz). Eğer onlar otomatik olarak düzeltilen olduğunuzu değil bildirimi yaparsanız Ancak, bir belgenin veya nihai sürüme arasından kayıp olabilir kötüsü, eğer sen yazma kodu veya bir yapılandırma dosyası (örneğin, değişen xminiçin mintamamen grafik görünüm yapacak yanlış). Yorumlar da garip hale gelebilir (örneğin, "Etiket ve nullar talimatı" ifadesini "Etiket ve nullif talimatı" olarak değiştirmiştim, bu, (a) isim ifadesinden zorunlu olana ve (b) tamamen farklı bir şey anlamına gelen anlamını değiştirir. )
  • İkinci olarak, otomatik düzeltme kısa kelimelerde oldukça zayıftır. Benim tecrübelerime göre, örneğin üç harfli kelimelerle kastettiğinizden tamamen farklı olabilecek en yakın kelimeyi tamamlama eğilimindedir. Eğer tür yazmak istiyorsanız , ancak fo yazınsa , istediğiniz gibi değil, az sayıda düzeltilecektir ! Yine, bu lanetli revizyonlarda yakalanması zor olabilir.

Bunu akılda tutarak, gerçek amacınızın tipografik hataları hızlı bir şekilde tanımak ve düzeltmek olduğunu düşünüyorum .

Bunu gerçekleştirmek için aşağıdaki eşlemeleri kullanıyorum:

" Go back to last misspelled word and pick first suggestion.
inoremap <C-L> <C-G>u<Esc>[s1z=`]a<C-G>u

" Select last misspelled word (typing will edit).
nnoremap <C-K> <Esc>[sve<C-G>
inoremap <C-K> <Esc>[sve<C-G>
snoremap <C-K> <Esc>b[sviw<C-G>

Gövde metni yazarken, vurgulama ayarlarıma göre yanlış yazılan kelimelerin altı çizilir. Kelimenin nispeten uzun olduğunu ve basit bir yazım hatası olduğunu görürsem spell, muhtemelen doğru bir şekilde düzelteceğini anlayabilirim , bu yüzden vurup <C-L>yazmaya devam ederim . Daha kısa bir kelime ise veya yanlış olacağını tahmin edersem, <C-K>kendim basıp ayarlayabilirim. Son olarak, spellbeklenmedik bir şekilde yanlış şeyi düzeltirse, bir geri alma işaretçisi ayarladım <C-G>u, bu yüzden sadece <Esc>ucWmanuel olarak değiştirebilirim Çoğu zaman çok hızlı bir iş akışı sağlar.


Her kelimeyi otomatik olarak düzeltmek mükemmel bir fikirdir .
Zengin

2

Şans eseri, bunu yapan bir eklenti yazdım. Buna Vim You denir , Otomatik Düzelt!

Yükledikten:EnableAutocorrect sonra, herhangi bir arabellekte açmak için yazın ve yakında wchargin'in korkutucusunun oldukça temelsiz olduğunu göreceksiniz .


Wchargin'in cevabı hakkındaki yorumunuzun kaba olarak işaretlendiğine dikkat edin, "Poppycock!" ve bayrağını kapattı. Önemli değil, sadece FYI.
Martin Tournoij

@MartinTournoij Sorun değil. Reddit'teki birçok kişi de şaka alamadı . :) (Yine de dikkatleri için teşekkürler.)
Zengin

mr Rich hangi paketi yüklemek ve yazmak istiyorum: EnableAutoCorrect i didnt anlamak
MP Creations

@MPCreations Bir eklenti yöneticisi kullanıyor musunuz?
Zengin

@MPCreations Belki bir eklentiyi nasıl kuracağınızı bilmiyorsanız vi.stackexchange.com/questions/613/… ' a verilen yanıtlara bir göz atın
Zengin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.