Wie kann ich die Rechtschreibprüfung von Vim mit "intelligenten Anführungszeichen" verwenden?


11

Es gibt die "normalen" geraden Anführungszeichen:
'"

Und Sie haben die abgewinkelten "intelligenten Anführungszeichen":
'' ""

Die Rechtschreibprüfung von Vim funktioniert mit "geraden" Anführungszeichen, aber nicht mit engelhaften Anführungszeichen. Dies wird daher als "falsch" angesehen:
Es ist ... Monty Pythons

Auch wenn es nicht so ist.

Screenshot, falls Ihre Schrift den Unterschied nicht zeigt:

Geben Sie hier die Bildbeschreibung ein

Wie behebe ich das? Ich würde es vorziehen, wenn es für beide Varianten funktioniert (es ist und es ist).

Antworten:


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

Das Problem ist, dass alle diese Wörter mit Apostrophen tatsächlich in Ihrer Wörterbuchdatei enthalten sind. Wenn Sie also mit der Änderung Ihres vim-Rechtschreibwörterbuchs einverstanden sind, tun Sie Folgendes:

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

Dieser Wille

  • grepum alle Wörter in Ihrem Systemwörterbuch zu finden, die einen Apostroph ( ') enthalten;
  • seddie geraden Anführungszeichen in intelligente Anführungszeichen zu ändern ( s/'/’/gdh das erste Anführungszeichen ist gerade und das zweite ist intelligent); und
  • Hängen Sie es an Ihr Sprachwörterbuch an (ersetzen Sie es durch Ihre Sprache).

Sie müssen dies in eine .splDatei neu kompilieren , was Sie mit Vim tun können:

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

Wenn Sie die tatsächlichen Zauberdateien verwenden möchten, die Vim als Ausgangspunkt verwendet (anstelle Ihres Systemwörterbuchs), können Sie den :spelldumpBefehl verwenden. Die Ausgabe enthält alle Wörter, die Vim für den aktuellen verwendet spelllang, einschließlich der bereits aus der .addDatei hinzugefügten . Speichern Sie das Ergebnis von :spelldumpin einer Datei und entfernen Sie die ersten beiden Zeilen (Header-Informationen). Verwenden Sie dann dieselben Befehle wie oben. Möglicherweise möchten Sie es auch durchleiten uniq, um doppelte Einträge zu entfernen. (Keine Notwendigkeit sort; die Ausgabe von :spelldumpist bereits sortiert.)


Warum verwenden Sie 'sals Muster? Ist das nicht auch nur 'richtig? Dies verpassen Worte , die eine haben ' an einem anderen Ort (zB you'd, you'veusw.)
Martin Tournoij

Ja, du hast recht. Ich habe meine Antwort bearbeitet.
Wchargin

Danke :-) Ich war mir nicht sicher, ob du das mit einem Grund getan hast, also zögerte ich, es selbst zu bearbeiten ...
Martin Tournoij

Wenn Sie sich für die :mkspell!Route entscheiden, möchten Sie möglicherweise auch Wörter herausfiltern, die für irrelevante Regionen bestimmt sind.
Aaron Massey

1

Ab sofort können Sie einfach eine neue Zauberdatei für das VIM herunterladen und kompilieren. Die Unicode-Anführungszeichen wurden der aktuellen Version des englischen Wörterbuchs hinzugefügt.

Schritte, basierend auf diesem Artikel :

  1. Erstellen Sie ein Verzeichnis ~/.vim/spellund wechseln Sie dorthin . (Der Pfad ist Teil von VIMs runtimepath.)

  2. Für die englische Sprache kann das Wörterbuch hier heruntergeladen werden . (Alternativ: von LibreOffice Repo - Sie benötigen sowohl .dicals auch .affDateien.)

    NB Für bessere Ergebnisse würde ich empfehlen, sowohl en_US als auch en_GB zu erhalten. Das Wörterbuch en_GB befindet sich im LibreOffice-Repo.

  3. Entpacken Sie die Datei:

    unzip -x hunspell-en_US-2017.01.22.zip
    

    Das Archiv muss mindestens folgende Dateien enthalten: en_US.affund en_US.dic.

  4. Starten Sie VIM (im ~/.vim/spellVerzeichnis) und führen Sie in VIM den folgenden Befehl aus::mkspell! en en_US

    Oder wenn Sie auch en_GB-Dateien heruntergeladen haben: :mkspell! en en_US en_GB

  5. Beenden Sie VIM und überprüfen Sie die Dateien im aktuellen Verzeichnis. Es sollte eine Datei en.utf-8.splerstellt werden.

  6. Erledigt!

Nachdem Sie VIM gestartet und die Rechtschreibprüfung für die englische Sprache aktiviert haben, sollte zunächst die frisch erstellte .splDatei ausgewählt werden, aus ~/.vim/spellder die Unicode-Anführungszeichen bereits unterstützt werden. Zumindest hat es bei mir so funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.