Bir kelimeyi yanlış yazdığımda vim terminal çanını nasıl çalabilirim?


17

Ekrana bakmadan 100+ wpm yazdığım makul miktarda transkripsiyon yapıyorum. Yazım denetleyicisi sadece son sözcüğü işaretlediyse vim bana bir tür sesli işaret verebilirse yararlı olacağını düşünüyorum (muhtemelen bir yazım hatası yaptığımı ve yazdıklarımı iki kez kontrol etmeliyim).

Yazım denetleyici, boşluk çubuğuna bastığımda kesinlikle yanlış yazılan sözcükleri sözdizimi ile vurgulayabilir. Bu nasıl çalışıyor? Aynı anda bir tür komut çalıştırmanın bir yolu var mı?

Terminalde daima vim kullanıyorum; Terminal zili sesi şu anda kurulmadı, ancak bunu yapmanın en kolay yolu buysa, muhtemelen çalıştırabilirim.


Sorunun kendisi bir yana, gerçekten bir kelimeyi düzeltmek için yazmanızın yarıda kesilmesini istiyor musunuz? Önce yazmayı tamamlar ve ardından "bir sonraki yanlış yazılmış kelimeye atla" komutu ile hataları gözden geçirirseniz daha hızlı olmaz mıydınız?
Shahbaz

Motivasyonum daha çok şöyle: genellikle yazma şeklim, bir kelimeyi doğru bir şekilde doğru yazdığımı söyleyebilirim, ancak bazen bir kelime yazıyorum ve onu biraz hayal kırıklığına uğrattığımı biliyorum, ama hala bir şansım var O doğru. Bip sesi çıkarmazsa, doğru olduğunu biliyorum ve endişelenmeden devam edebilirim; Aksi takdirde, ben ^ W üzerinde ve tekrar deneyin. Bu oldukça adil bir soru olsa da, muhtemelen birkaç farklı yaklaşımı zamanlamaya ve ne olduğunu görmeye değer.
Soren Bjornstad

2
Tamam, bunu yapma şekliniz muhtemelen daha verimli olacaktır. Eğer bip sesi sizi "yaptıysa", bu muhtemelen sizi yavaşlatırdı, ama ekrana bir uyarı bile vermeden otomatik bir ^ W ile bir bip sesine yanıt verirseniz, bu kadar hızlı olmalıdır. Yine de dikkatli olun, eğer bir sonraki kelimeyi yazmaya başladıktan sonra beyniniz sesli bip sesini algılarsa, ^ W yanlış kelimeyi siler. Böyle bir durumda, ^ B tuşuna basılana kadar bir bip sesinden sonra eklenen tüm karakterleri atmayı düşünebilirsiniz, böylece ^ W'nin yanlış yazılmış kelimeyi sildiğini ve oradan devam etmeniz gerektiğini güvenle bilebilirsiniz.
Shahbaz

Yanıtlar:


15

Yanlış yazılan son sözcüğe doğrudan erişilemez ve vurgulama sorgulanamaz. İmlecin önündeki sözcüğü kendiniz almanız ve ayrı ayrı yazım denetimi yapmanız gerekir. Neyse ki, böyle bir spellbadword()işlev var. Aşağıda, eklenen her anahtarda son sözcüğü kontrol eden bir tetikleyici ayarlanmıştır:

autocmd CursorMovedI * if &spell && spellbadword(matchstr(strpart(getline('.'), 0, col('.') - 1), '\S\+\s$') )[1] ==# 'bad' | execute "normal! \<C-\>\<C-n>\<Esc>" | endif

Bip sesi yapmak yerine, kısa bir ses çalan :normal! <Esc>harici bir aracı da çağırabilirsiniz system(). Bu, <Esc>bazen gördüğüm imleç hareketini durdurma ile ilgili sorunları da önleyecektir .


Bu harika! Boşluk çubuğuna basmada çok küçük bir gecikme ekler (bir kelimeden sonra), ancak büyük bir anlaşma olmak yeterli değildir ve elbette sadece yazım denetimi etkinleştirildiğinde gerçekleşir. Bip sesi için, çalışan bir komut dosyası hazırladım mplayer -really-quiet $SOUNDFILE >/dev/null 2>&1 &ve bunu eylem olarak koydum.
Soren Bjornstad

1
Teşekkürler! if &spell && spellbadword(...)Yazım denetimi kapalı olduğunda kelime almayı bile devre dışı bırakmak için ek ekleyebilirsiniz .
Ingo Karkat
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.