Comment puis-je utiliser la vérification orthographique de Vim avec des «citations intelligentes»

11

Il y a les guillemets droits "normaux":
'"

Et vous avez les "citations intelligentes" inclinées:
'' "”

La vérification orthographique de Vim fonctionne avec des guillemets "droits", mais pas avec des guillemets angélisés, donc cela est considéré comme "faux":
c'est ... Monty Python

Même si ce n'est pas le cas.

Capture d'écran, au cas où votre police ne ferait pas la différence:

entrez la description de l'image ici

Comment puis-je réparer ça? Je préférerais le faire fonctionner pour les deux variantes (c'est et c'est).

Martin Tournoij
la source

Réponses:

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

Le problème est que tous ces mots avec des apostrophes sont en fait dans votre fichier dictionnaire. Donc, si vous êtes d'accord avec la modification de votre dictionnaire d'orthographe vim, faites-le:

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

Cette volonté

  • greppour trouver tous les mots de votre dictionnaire système qui contiennent une apostrophe ( ');
  • sedpour changer les guillemets droits en guillemets intelligents (c'est-à- s/'/’/gdire où le premier guillemet est droit et le second est intelligent); et
  • ajoutez-le à votre dictionnaire de langues (remplacez-le par votre langue).

Vous devrez recompiler cela dans un .splfichier, ce que vous pouvez faire depuis Vim:

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

Si vous souhaitez utiliser les fichiers de sorts réels que Vim utilise comme point de départ (au lieu de votre dictionnaire système), vous pouvez utiliser la :spelldumpcommande. La sortie inclura tous les mots que Vim utilise pour le courant spelllang, y compris ceux déjà ajoutés à partir du .addfichier. Enregistrez le résultat de :spelldumpdans un fichier et supprimez les deux premières lignes (informations d'en-tête), puis utilisez les mêmes commandes que ci-dessus. Vous pouvez également vouloir le faire passer uniqpour supprimer les entrées en double. (Pas besoin de le faire sort; la sortie de :spelldumpest déjà triée.)

wchargin
la source
Pourquoi utilisez-vous 'scomme modèle? La recherche n'est-elle pas juste 'aussi? Cela va manquer des mots qui ont un ' dans un autre emplacement ( par exemple you'd, you'veetc.)
Martin Tournoij
Oui, tu as raison. J'ai édité ma réponse.
wchargin
Merci :-) Je ne savais pas si vous aviez fait ça pour une raison, alors j'ai hésité à le modifier moi-même ...
Martin Tournoij
Si vous choisissez de suivre l' :mkspell!itinéraire, vous pouvez également filtrer les mots destinés à des régions non pertinentes.
Aaron Massey
1

À partir de maintenant, vous pouvez simplement télécharger et compiler un nouveau fichier de sorts pour le VIM. Les citations Unicode ont été ajoutées à la version actuelle du dictionnaire anglais.

Étapes, basées sur cet article :

  1. Créez un répertoire ~/.vim/spellet changez-le. (Le chemin fait partie de VIM runtimepath.)

  2. Pour la langue anglaise, le dictionnaire peut être téléchargé ici . (Alternativement: depuis le repo LibreOffice - vous avez besoin des fichiers .dicet des .afffichiers.)

    NB Pour de meilleurs résultats, je recommanderais d'obtenir à la fois en_US et en_GB. Le dictionnaire en_GB se trouve dans le référentiel LibreOffice.

  3. Décompressez le fichier:

    unzip -x hunspell-en_US-2017.01.22.zip
    

    L'archive doit au moins contenir ces fichiers: en_US.affet en_US.dic.

  4. Démarrez VIM (dans le ~/.vim/spellrépertoire) et dans VIM exécutez la commande::mkspell! en en_US

    Ou si vous avez également téléchargé des fichiers en_GB: :mkspell! en en_US en_GB

  5. Quittez VIM et vérifiez les fichiers dans le répertoire en cours. Il devrait y avoir un fichier en.utf-8.splcréé.

  6. Terminé!

Maintenant, après avoir démarré VIM et activé la vérification orthographique pour la langue anglaise, il doit d'abord choisir le .splfichier fraîchement créé à partir ~/.vim/spellduquel contient déjà la prise en charge des citations Unicode. Du moins, ça a fonctionné pour moi.

Dummy00001
la source