Jak mogę używać sprawdzania pisowni Vima z „inteligentnymi cytatami”

11

Są „normalne” proste cytaty:
„”

I masz pod kątem „inteligentne cytaty”:
„” „”

Sprawdzanie pisowni Vima działa z „prostymi” cytatami, ale nie z anielskimi, więc jest to uważane za „złe”:
to ... Monty Python

Chociaż tak nie jest.

Zrzut ekranu, w przypadku gdy twoja czcionka nie pokazuje różnicy:

wprowadź opis zdjęcia tutaj

Jak to naprawić? Wolałbym, aby działał dla obu wariantów (jest i jest).

Martin Tournoij
źródło

Odpowiedzi:

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

Problem polega na tym, że wszystkie te słowa z apostrofami znajdują się w pliku słownika. Jeśli więc możesz modyfikować słownik pisowni vim, zrób to:

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

To będzie

  • grepznaleźć wszystkie słowa w słowniku systemowym, które zawierają apostrof ( ');
  • sedzmienić proste cytaty na inteligentne ( s/'/’/gtam, gdzie pierwszy cytat jest prosty, a drugi inteligentny); i
  • dołącz go do słownika językowego (zamień na dowolny język).

Musisz skompilować to do .splpliku, co możesz zrobić z Vima:

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

Jeśli chcesz użyć rzeczywistych plików pisowni, których Vim używa jako miejsca początkowego (zamiast słownika systemowego), możesz użyć :spelldumppolecenia. Dane wyjściowe będą zawierać wszystkie słowa używane przez Vima dla bieżącego spelllang, w tym te już dodane z .addpliku. Zapisz wynik w :spelldumppliku i usuń pierwsze dwa wiersze (informacje w nagłówku), a następnie użyj tych samych poleceń, jak powyżej. Możesz także chcieć przepuszczać go przez rurkę uniq, aby usunąć duplikaty wpisów. (Nie ma potrzeby sort; wynik :spelldumpjest już posortowany.)

wchargin
źródło
Dlaczego używasz 'sjako wzorca? Czy nie tylko szukanie 'poprawnych, dobrze? Będzie to brakuje słów, które mają działanie ' w innej lokalizacji (takich jak you'd, you'veitp)
Martin Tournoij
Tak, masz rację. Zredagowałem swoją odpowiedź.
wchargin
Dzięki :-) Nie byłem pewien, czy zrobiłeś to z jakiegoś powodu, więc
wahałem
Jeśli wybierzesz :mkspell!trasę, możesz również odfiltrować słowa przeznaczone dla nieistotnych regionów.
Aaron Massey,
1

W tej chwili możesz po prostu pobrać i skompilować nowy plik pisowni dla VIM. Cytaty Unicode zostały dodane do bieżącej wersji słownika angielskiego.

Kroki oparte na tym artykule :

  1. Utwórz katalog ~/.vim/spelli przejdź do niego. (Ścieżka jest częścią VIM runtimepath.)

  2. W przypadku języka angielskiego słownik można pobrać tutaj . (Alternatywnie: z repozytorium LibreOffice - potrzebujesz zarówno plików, jak .dici .affplików.)

    NB W celu uzyskania lepszych rezultatów polecam uzyskanie zarówno en_US, jak i en_GB. Słownik en_GB można znaleźć w repozytorium LibreOffice.

  3. Rozpakuj plik:

    unzip -x hunspell-en_US-2017.01.22.zip
    

    Archiwum musi zawierać przynajmniej te pliki: en_US.affi en_US.dic.

  4. Uruchom VIM (w ~/.vim/spellkatalogu) i w VIM wykonaj polecenie::mkspell! en en_US

    Lub jeśli pobrałeś również pliki en_GB: :mkspell! en en_US en_GB

  5. Wyjdź z VIM i sprawdź pliki w bieżącym katalogu. Powinien zostać en.utf-8.splutworzony plik .

  6. Gotowe!

Teraz, po uruchomieniu VIM i aktywowaniu sprawdzania pisowni dla języka angielskiego, powinien on najpierw wybrać świeżo utworzony .splplik, z ~/.vim/spellktórego już zawiera obsługę cytatów Unicode. Przynajmniej tak to dla mnie działało.

Dummy00001
źródło