Vim'in yazım denetimini 'akıllı tırnak' ile nasıl kullanabilirim


11

"Normal" düz tırnak işaretleri var:
""

Ve açılı "akıllı tırnaklarınız" var:
'' “”

Vim'in yazım denetimi "düz" tırnaklarla çalışır, ancak melek tırnaklarla değil, bu yüzden "yanlış" olarak kabul edilir:
Bu ... Monty Python’un

Olmasa da.

Fontunuzun farkı göstermemesi durumunda ekran görüntüsü:

resim açıklamasını buraya girin

Bunu nasıl düzeltirim? Her iki varyant için de çalışmasını tercih ederim (bu ve bu).

Yanıtlar:


7
$ grep "'" /usr/share/dict/words | wc -l
26226
$ grep -i python /usr/share/dict/words
Python
Python's
python
python's
pythons

Sorun apostrophes tüm bu kelimeler aslında sözlük dosyanızda olmasıdır. Dolayısıyla, vim yazım sözlüğünüzü değiştirmeye hazırsanız, bunu yapın:

$ grep "'" /usr/share/dict/words | sed "s/'/’/g" >> ~/.vim/spell/en.utf-8.add

Bu irade

  • grepsistem sözlüğünüzde kesme işareti ( ') içeren tüm kelimeleri bulmak için ;
  • seddüz tırnakları akıllı tırnaklarla değiştirmek ( s/'/’/gilk alıntı düz, ikincisi akıllı); ve
  • dil sözlüğünüze ekleyin (diliniz ne olursa olsun değiştirin).

Bunu Vim'den yapabileceğiniz bir .spldosyaya yeniden derlemeniz gerekir :

:mkspell! ~/.vim/spell/en.utf-8.add

Vim'in başlangıç ​​yeri olarak kullandığı gerçek yazım dosyalarını (sistem sözlüğünüz yerine) kullanmak istiyorsanız, :spelldumpkomutu kullanabilirsiniz . Çıkış içerecektir tüm Vim akımı için kullandığı kelimeleri spelllang, dahil zaten tarafından eklenmiş olanlar .adddosyaya. Sonucu :spelldumpbir dosyaya kaydedin ve ilk iki satırı (başlık bilgisi) kaldırın, ardından yukarıdaki komutları kullanın. Ayrıca uniq, yinelenen girişleri kaldırmak için bunu da kanalize etmek isteyebilirsiniz . (Gerek yok sort; çıktısı :spelldumpzaten sıralanmış.)


Neden 'sdesen olarak kullanıyorsunuz ? Sadece 'doğru değil, iyi arama da değil mi? Bu sahip kelimeleri özleyeceğim ' farklı bir konumda (örneğin you'd, you'vevs.)
Martin Tournoij

Evet, haklısın. Cevabımı düzenledim.
wchargin

Teşekkürler :-) Bunu bir sebeple yaptıysanız emin değildim, bu yüzden kendimi düzenlemekte tereddüt ettim ...
Martin Tournoij

:mkspell!Rotaya gitmeyi seçerseniz , alakasız bölgelere yönelik kelimeleri de filtrelemek isteyebilirsiniz.
Aaron Massey

1

Şu andan itibaren, VIM için yeni bir büyü dosyasını indirip derleyebilirsiniz. Unicode alıntıları İngilizce sözlüğün geçerli sürümüne eklendi.

Bu makaleye dayanan adımlar :

  1. Dizin oluşturun ~/.vim/spellve değiştirin. (Yol VIM'lerin bir parçasıdır runtimepath.)

  2. İngiliz dili için, sözlük indirilebilir burada . (Alternatif olarak: den LibreOffice repo - hem ihtiyaç .dicve .affdosyaları.)

    Not Daha iyi sonuçlar için hem en_US hem de en_GB'yi almanızı öneririm. en_GB sözlüğü LibreOffice deposunda bulunabilir.

  3. Dosyayı açın:

    unzip -x hunspell-en_US-2017.01.22.zip
    

    Arşiv en azından şu dosyaları içermelidir: en_US.affve en_US.dic.

  4. VIM'i ( ~/.vim/spelldizinde) başlatın ve VIM'de şu komutu yürütün::mkspell! en en_US

    Veya en_GB dosyalarını da indirdiyseniz: :mkspell! en en_US en_GB

  5. VIM'den çıkın ve geçerli dizindeki dosyaları kontrol edin. Dosya en.utf-8.sploluşturulmalıdır.

  6. Bitti!

Şimdi, VIM'i başlattıktan ve İngilizce dil için yazım denetimini etkinleştirdikten sonra, önce Unicode tırnakları için destek içeren yeni oluşturulan .spldosyayı ~/.vim/spellseçmelidir. En azından benim için böyle çalıştı.

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.