Erreurs d'orthographe de correction automatique

19

J'ai activé la vérification orthographique avec

:set spell spelllang=en_us

Je peux maintenant corriger l'orthographe d'un mot en tapant 1z=(c'est-à-dire, choisir la 1correction d'orthographe st ( z=)).

Comment puis-je exécuter cela automatiquement sur le mot précédent chaque fois que je tape un espace, sans aucun délai? Il essaie également de "corriger" les mots qui sont déjà correctement orthographiés (c'est pourquoi je ne peux pas faire quelque chose comme ça inoremap <space> <esc>mmb1z=`ma<space>), donc je veux seulement corriger chaque mot que je tape s'il est mal orthographié .

Existe-t-il un moyen de corriger automatiquement les mots mal orthographiés dans Vim?

Poignée de porte
la source
2
Voir ceci
Arturo Volpe
1
@ArturoVolpe Cela semble être une réponse légitime à la question.
bsmith89
pourriez-vous combiner l'erreur précédente «[s» dans un remappage? J'ajouterais comme réponse mais je ne sais pas comment faire le remap donc je laisserai ça à quelqu'un d'autre.
Nick J Adams

Réponses:

8

Je déconseille de corriger automatiquement chaque mot marqué incorrectement, pour deux raisons.

  • Tout d'abord, vous obtiendrez beaucoup de faux positifs sur les choses que vous vouliez taper, en particulier dans la rédaction plus technique. Vous pouvez certainement (et peut-être devriez) ajouter ces deux à votre dictionnaire afin qu'ils soient reconnus et suggérés. Cependant, si vous ne remarquez pas qu'ils sont autocorrigés, ils pourraient passer à une version finale d'un document - ou pire, si vous écrivez du code ou un fichier de configuration (par exemple, changer xminpour mindonner au graphique un aspect totalement faux). Les commentaires peuvent également devenir bizarres (par exemple, j'ai changé "Étiquette et instruction nulle" en "Étiquette et annuler l'instruction", ce qui change le sens (a) d'une phrase nominale en impératif, et (b) en signifiant quelque chose de complètement différent. )
  • Deuxièmement, la correction automatique est assez médiocre sur les mots courts. D'après mon expérience, il tend à se terminer par le mot le plus proche, qui, par exemple, avec des mots à trois lettres, peut être totalement différent de ce que vous voulez dire. Si vous voulez dire taper de mais accidentellement taper fo , il sera corrigé à quelques -non ce que vous vouliez! Encore une fois, ceux-ci peuvent être difficiles à détecter dans les révisions superficielles.

Dans cet esprit, je pense que votre véritable objectif est de pouvoir reconnaître et corriger rapidement les erreurs typographiques.

J'utilise les mappages suivants pour accomplir cela:

" Go back to last misspelled word and pick first suggestion.
inoremap <C-L> <C-G>u<Esc>[s1z=`]a<C-G>u

" Select last misspelled word (typing will edit).
nnoremap <C-K> <Esc>[sve<C-G>
inoremap <C-K> <Esc>[sve<C-G>
snoremap <C-K> <Esc>b[sviw<C-G>

Lorsque je tape le corps du texte, tous les mots mal orthographiés seront soulignés, selon mes paramètres de surbrillance. Si je vois que le mot est relativement long et qu'il s'agit d'une simple faute de frappe, je peux comprendre que spellcela le corrigera probablement correctement, alors je tape <C-L>et je continue de taper. Si c'est un mot plus court ou si je m'attends à ce qu'il se trompe, je peux appuyer <C-K>et régler moi-même. Enfin, si spellje corrige de façon inattendue la mauvaise chose, j'ai défini un marqueur d'annulation avec <C-G>u, donc je peux juste <Esc>ucWle changer manuellement Cela permet un workflow très rapide la plupart du temps.

wchargin
la source
Réparer automatiquement chaque mot est une excellente idée .
Rich
2

Par chance, j'ai écrit un plugin qui fait exactement cela. Cela s'appelle Vim You, correction automatique!

Après l'installation, tapez :EnableAutocorrectpour l'activer dans n'importe quel tampon, et vous verrez bientôt que l' alarmisme de wchargin est assez infondé.

Riches
la source
Notez que votre commentaire sur la réponse de wchargin a été signalé comme impoli, je l'ai modifié pour supprimer le "Poppycock!" et a rejeté le drapeau. Pas un gros problème, juste FYI.
Martin Tournoij
@MartinTournoij Ça va. Beaucoup de gens sur reddit n'ont pas non plus compris la blague . :) (Merci pour l'
Rich
mr Rich quel package je veux installer et tapez: EnableAutoCorrect je ne comprenais pas
MP Creations
@MPCreations Utilisez-vous un gestionnaire de plugins?
Rich
@MPCreations Jetez peut-être un coup d'oeil aux réponses à vi.stackexchange.com/questions/613/… si vous ne savez pas comment installer un plugin
Rich