Sommaire
Comme je suis en train de continuer la traduction de la seconde édition de Progit et qu'en même temps, des lecteurs me remontent de nombreuses fautes dans ce qui existe déjà, il est grand temps de mettre en route les aides à la rédaction sous mon éditeur favori.
Correction orthographique
Sous Emacs, la solution la plus directe pour la correction et d'utiliser M-x ispell
, en ayant au préalable correctement paramétré le module, c'est-à-dire
- en ayant installé les paquets hunspell et hunspell-fr
- en ayant paramétré le module ispell pour utiliser hunspell
Pour éliminer les sections inintéressantes de la vérification dans le cas d'un document asciidoc, on peut ajouter au ~/.emacs
(add-to-list 'ispell-skip-region-alist
'("^\\[source" . "^----\n\n") ;; source exerpts
'("\\[\\[" . "\\]\\]") ;; links
)
hunspell a l'avantage de connaître comment décliner les formes nominales ou verbales. Mais il ne connaît pas tout. Pour Git, par exemple, on utilise à tour de bras les termes commit, rebaser, etc qui ne sont pas dans le dictionnaire par défaut. Et justement, quand on veut ajouter ces nouveaux mots on ne veut sûrement pas avoir à en saisir toutes les formes.
C'est là où hunspell dans emacs offre vraiment la possibilité de renseigner ces nouveaux mots sous forme intelligente. Supposons que nous ayons saisi le texte :
Dans Git, il y a deux façons d'intégrer les commits d'une branche dans une autre : en fusionnant (`merge`) et en rebasant (`rebase`).
Le lancement de M-x ispell
bloque en premier sur Git. C'est un mot à ajouter au dictionnaire. Dans les propositions, on peut appuyer sur i
, pour simplement insérer le mot tel quel dans mon dictionnaire personnel.
Ensuite, il bloque sur commits, qu'on pourrait tout à fait intégrer comme tel, mais pour lequel on a intérêt à ajouter la forme au singulier. Qu'à cela ne tienne ! Au lieu de presser i
, pressons m
, ce qui permet de saisir la forme sous laquelle on veut entrer le nouveau mot dans le dictionnaire. Ici, c'est avec hunspell qu'il faut s'arranger. Dans le dictionnaire personnel, on peut saisir une entrée en utilisant la forme <mot racine>\<mot modèle du dictionnaire>
.
Dans hunspell tel que renseigné par dicollecte,
- les noms communs sont intégrés sous leur forme féminine singulière si elle existe,
- sous leur forme masculin singulier sinon,
- les verbes sont intégrés sous la forme infinitive.
Ici, on a donc intérêt à saisir commit/stage
, ce qui signifie que le mot commit
peut être décliné comme stage
, donc au pluriel commits
comme dans notre texte. On fait d'une pierre deux coups pour le vocabulaire. En plus, si on demande à hunspell d'analyser ce mot, il sera correctement étiqueté comme un nom masculin pluriel, ce qui peut être utilisé pour une vérification grammaticale.
Un peu plus loin, hunspell bloque sur merge
, et là, on ne veut pas le faire entrer dans le dictionnaire, mais juste l'ignorer. On appuie sur si on veut l'ignorer juste cette fois, ou sur a
, pour l'autoriser pour tout le reste de la session de correction.
Enfin, on s'arrête sur rebasant
, et comme on a pigé le truc, on appuie sur m
et on propose rebaser/recaser
, ce qui autorise la forme participe présent en cours. Cette correction autorise de même la forme rebase
en fin de texte, ainsi que toutes les autres formes conjuguées
Un petit hunspell -m
sur le fichier montre bien comment les mots ont été intégrés :
—
Git st:Git
—
commits st:commit is:pl
—
rebasant st:rebaser po:ppre
Correction grammaticale
La correction orthographique, c'est bien, mais ça ne corrige pas les erreurs d'accord ou d'homonymes. Pour cela, il faut passer à la version correction grammaticale.
Sous Emacs, je n'ai pas trouvé beaucoup de choix. Il y a LanguageTool qu'on peut coupler à langtool.el.
- Télécharger LanguageTool en ligne de commande et le décompresser.
- Télécharger langtool.el en clonant le dépôt et en linkant langtool.el sous
~/.emacs.d/lisp
- Installer langtool dans le
.emacs
:
(add-to-list 'load-path "~/.emacs.d/lisp/")
(require 'langtool)
(setq langtool-language-tool-jar "/chemin/vers/LanguageTool-3.0/languagetool-commandline.jar")
(setq langtool-default-language "fr")
(setq langtool-java-bin "/usr/bin/java")
(setq langtool-mother-tongue "fr")
Maintenant on peut démarrer la session de correction avec M-x langtool-check
. LanguageTool analyse le buffer et surligne les erreurs qu'il trouve. Même vocabulaire, mêmes effets. Les mots inconnus sont marqués comme faute de frappe.
L'ennui est qu'on ne peut pas tirer parti du travail déjà réalisé pour hunspell. Il faut tout reprendre du début, et LanguageTool ne simplifie pas la vie.
Pour faire accepter et correctement étiqueter les nouveaux mots, il faut à la fois
- les ajouter dans le vocabulaire connu. À la différence de hunspell, il faut fournir toutes les formes des mots qu'on entre. Ça se passe, dans le fichier
LanguageTool-3.0/org/languagetool/resource/fr/hunspell/spelling.txt
:# Words that extend the spell checker. See ignore.txt for words that should be # completely ignored (i.e. not used to create suggestions). commit commits Git rebase rebasage rebaser rebasons rebasez rebasé rebasés rebasées rebasée rebasant
- Ensuite, il faut leur donner une signification grammaticale, en renseignant les formes grammaticales dans
LanguageTool-3.0/org/languagetool/resource/fr/added.txt
# A part-of-speech dictionary that's used additionally to the binary dictionary (*.dict) # File Encoding: UTF-8 # Format: three tab-separated fields: fullform baseform postags Git Git Z Perforce Perforce Z e sp commit commit N m s commits commit N m p rebasage rebasage N m s rebasages rebasage N m p rebasant rebaser V ppr rebase rebaser V ind pres 1 s rebase rebaser V ind pres 3 s rebaser rebaser V inf rebasons rebaser V ind pres 1 p rebasons rebaser V imp pres 1 p rebasez rebaser V imp pres 2 p rebasez rebaser V ind pres 2 p
Les formes grammaticales sont assez explicites. Pour référence, on les retrouve dans LanguageTool-3.0/org/languagetool/resource/fr/tagset.txt
C'est clairement plus lourd que hunspell (éditer d'autres fichiers à côté) et c'est dommage que l'effort déjà consenti ne puisse pas repayer. Les gains sont aussi plus importants, surtout pour les têtes-en-l'air.
# Pas de grammaire donc
Posté par Jiehong (site web personnel) . Évalué à 5.
Personnellement, vu comment c'est galère, je considère que la grammaire n'est pas corrigée sous Emacs.
aspell
ouhunspell
sont bien, mais je n'ajoute jamais de nouveaux mots : je me contente de les ignorer.Par contre, quand tu changes de dictionnaire, c'est vraiment pas bien fait, car tu dois choisir entre :
Et avec aspell, c'est pire :
Bref, c'est mal foutu, et on y comprends rien (pour moi, on choisit entre français-moderne, français-classique ou français-réforme, mais non, pas sous Emacs…)
[^] # Re: Pas de grammaire donc
Posté par dyno partouzeur du centre . Évalué à -8.
En même temps, emacs c'est pas vraiment un traîtement de texte, j'ai du mal à voir l'utilité d'un correcteur orthographique et grammatical dans un outil qui n'est pas vraiment prévu pour créer des documents, à la base.
[^] # Re: Pas de grammaire donc
Posté par JN . Évalué à 3.
C'est pas trolldi aujourd'hui ?
Sérieusement, pour saisir du texte au kilomètre (mode traitement de texte) en LaTeX, ou tout système de markup, je ne vois pas mieux qu'un éditeur de texte bien configuré.
[^] # Re: Pas de grammaire donc
Posté par xcomcmdr . Évalué à 1.
Emacs est un éditeur de texte qui ne peut pas traiter du texte ?
HEIN ?!
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
[^] # Re: Pas de grammaire donc
Posté par fearan . Évalué à 2.
tu sais ce qu'on dit emacs est un bon OS, il ne lui manque qu'un bon éditeur de texte ;)
Mais voila… c'est fait on a le correcteur grammatical; sur quoi on va troller maintenant…
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: Pas de grammaire donc
Posté par fearan . Évalué à 2.
Il n'est pas plus mal adapté que d'autres; et certains de ses outils sont bien pratique, notamment la pseudo complétion, la complétion via ispell, le bookmark, le split de buffer, l'absence de marges monstrueuses, pas de bandeau inutile… Bref pour taper du texte il répond amplement au besoin.
La mise en forme est une autre histoire, mais tu peux toujours ouvrir le fichier dans un Office quelconque, ou faire du latex.
De plus, il peut arriver que tu ais des zones de textes (si tu fais du HTML), ou sinon lorsque tu codes, ne pas faire de grosse fautes d'accords dans les messages de ton appli, qui sont dans des fichier séparés; Va lancer un *Office sur ton fichier messagesFR_fr.dic, tu risques d'avoir des surprises (conversion en UTF-8, ou en iso, fin de lignes, caractère non imprimables mais qui va foutre la zone…
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: Pas de grammaire donc
Posté par barmic . Évalué à 3.
Pourtant c'est bien utile quand tu édite du LaTeX, du markdown (voir du HTML), que tu utilise org-mod voir quand tu écris tes mails,… Tu peut aussi t'en servir pour éditer des fichiers de traduction par exemple.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Pas de grammaire donc
Posté par dyno partouzeur du centre . Évalué à 1.
Certes, mais dans ces cas-là j'imagine que le markup vient un peu perturber le fonctionnement d'un correcteur orthographique ou grammatical, sauf à les customiser lourdement.
[^] # Re: Pas de grammaire donc
Posté par barmic . Évalué à 4.
Non emacs sait présenter au dictionnaire uniquement le texte sans les balises.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Pas de grammaire donc
Posté par JN . Évalué à 1.
Pour l'orthographe, comme noté dans le journal, on peut aussi indiquer à emacs les sections de texte qu'il ne faut pas passer au correcteur. Comme c'est une liste de regexp qui peut matcher sur plusieurs lignes, c'est suffisamment puissant pour la plupart des markup.
Pour la grammaire, c'est un peu ce qui manque à langtool, parce qu'il fait beaucoup de faux positifs sur les blocs de code.
# flyspell
Posté par Julien Jorge (site web personnel) . Évalué à 3.
Pour l'orthographe j'utilise flyspell qui met les mots mal orthographiés en évidence au fur et à mesure de la frappe. Je ne sais pas si on peu lui faire utiliser hunspell pour profiter des déclinaisons ; quelqu'un a-t-il déjà essayé ?
[^] # Re: flyspell
Posté par fearan . Évalué à 2.
Si tu utilises hunspell pour la correction de bases, flyspell l'utilises aussi ;)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: flyspell
Posté par fearan . Évalué à 2.
j'ajouterai que pour profiter de l'utf-8 j'ai du ajouter
dans mon .emacs, si des gens ont un truc plus end-user (genre par les menus de customisation), je suis preneur.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: flyspell
Posté par SChauveau . Évalué à 1.
Bizarre.
Cela fait bien longtemps que j'ai retiré toutes les configurations UTF-8 de mon .emacs. C'est fait par défaut.
[^] # Re: flyspell
Posté par fearan . Évalué à 3.
j'ai, au boulot, une vieille distrib, (centOS 6)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: flyspell
Posté par SChauveau . Évalué à 3.
Sur quasiment toutes les machines auxquelles j'ai accès, je recompile emacs moi même.
Cela prend un petit quart d'heure et cela m'assure que mon .emacs fonctionnera partout.
[^] # Re: flyspell
Posté par Narmer . Évalué à 0.
Tu peux expliquer quelles avantages tu tires à recompiler ton propre emacs ?
Qu'est ce que tu as "en plus" ?
[^] # Re: flyspell
Posté par Jiehong (site web personnel) . Évalué à 2.
Sûrement que la version installée est vieille, et que sa configuration marche pour une version pas trop ancienne. Ici, les version sont de 2008 sur nos machines, ce qui n'est pas récent du tout.
# Futur…
Posté par Jiehong (site web personnel) . Évalué à 2.
Je viens de me rappeler la campagne de financement qui avait réussi en mai à propos de Grammalecte, et l'une des entrée est une application serveur !
Ça pourrait sûrement s'interfacer avec Gnu/Emacs facilement, et ainsi fournir une correction grammaticale pas trop mauvaise.
D'ailleurs, on a plus de nouvelles quant au projet. On sait ce qu'il se passe du côté de chez Grammalecte et de l'état d'avancement du projet ?
[^] # Re: Futur…
Posté par JN . Évalué à 2.
ça avance :
http://www.dicollecte.org/thread.php?prj=fr&t=471
Apparemment, on aura une version autonome à tester sous peu.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.