Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

aspell, francais et nouveau processus

6 réponses
Avatar
Patrice Karatchentzeff
Salut,

Depuis mon passage en testing, j'ai un soucis avec mon couple
aspell+Emacs21...

J'ai ceci dans mon .emacs :

,----
| ;; dictionnaire aspell
| (setq-default ispell-program-name "aspell")
| (setq-default ispell-extra-args '("--reverse"))
|
| ;; flyspell
| ;;
| (setq flyspell-default-dictionary "francais")
|
| (defun flyspell-mode-on () (flyspell-mode 1))
| (add-hook 'text-mode-hook 'flyspell-mode-on)
`----

Me demandez pas pourquoi mais avant, cela fonctionnait bien... J'avais
un aspell « on the fly » qui reconnaissait bien le
français... maintenant, bernique pour les mots accentués. Par contre,
j'ai une solution car manifestement, repostionner la variable
ispell-dictionary à "francais" corrige le problème...

Le seul problème est que je suis obligé de le faire à la main à chaque
session (M-x ispell-change-dictionary). J'ai essayé dans le .emacs

,----
| (setq ispell-dictionary "francais")
| (setq-default ispell-dictionary "francais")
`----

mais sans succès : toujours positionnée à "nil"...

Une idée ?

Autre soucis, gnus ne semble pas trop aimé aspell... Souvent, lorsque
j'ouvre une fenêtre pour écrire un nouvel article, la fenêtre (et tout
Emacs) est bloqué pendant de longues secondes avec « starting new
ispell process » puis, Emacs me rend la main normalement...

C'est pénible... une autre idée ?

Merci d'avance,

PK

--
      |\      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:p.karatchentzeff@free.fr
     |,4-  ) )-,_. ,\ (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'\_)       

6 réponses

Avatar
Sébastien Kirche
Le 30 Mar 2005, Patrice Karatchentzeff a formulé :

Autre soucis, gnus ne semble pas trop aimé aspell... Souvent, lorsque
j'ouvre une fenêtre pour écrire un nouvel article, la fenêtre (et tout
Emacs) est bloqué pendant de longues secondes avec « starting new
ispell process » puis, Emacs me rend la main normalement...

C'est pénible... une autre idée ?



Ça c'est sans doute à cause du font-locking qui doit te mettre tout le
buffer en rouge souligné si le dictionnaire n'est pas bon.

S'il vaut nil, je suppose que ça revient à sélectionner l'anglais, donc si
ton message est en français presque aucun mot n'est juste.

Tu pourrais essayer de positionner le dico via les posting styles ?

Voici comment je fais :
,----
| (setq gnus-posting-styles
| '((".*"
| (eval (ispell-change-dictionary "english"))
| (signature "Sébastien Kirche")
| )
| ((message-mail-p)
| (From "Sébastien Kirche "))
| ((message-news-p);".*"
| (From "Sébastien Kirche ")
| (Reply-To "Sébastien Kirche "))
| ("fr.*"
| (eval (ispell-change-dictionary "francais")))
| ("fr.misc.bavardages"
| (X-Face nil)
| (signature "Séki"))
| ("fr.misc.bavardages.dinosaures"
| (Approved "seki"))
| ;;("^us" (eval (ispell-change-dictionary "american")) )
| )
| )
`----

Ensuite Alexandre m'avait donné une solution pour choisir le dico
simplement à la rédaction d'un nouveau message en passant par des defadvice :
,----
| (defadvice gnus-group-mail (around prompt-for-group activate)
| "Always prompt for a group from which to take posting-styles."
| (let ((arg 1))
| ad-do-it))
| (defadvice gnus-summary-mail-other-window (around prompt-for-group activate)
| "Always prompt for a group from which to take posting-styles."
| (let ((arg 1))
| ad-do-it))
| (defadvice gnus-summary-news-other-window (around prompt-for-group activate)
| "Always prompt for a group to post."
| (let ((arg 1))
| ad-do-it))
| ;;(defadvice gnus-summary-followup (around prompt-for-group activate)
| ;; "Always prompt for a group from which to take posting-styles."
| ;; (let ((arg 1))
| ;; ad-do-it))
`----

Après il ne reste plus qu'à indiquer fr au prompt par exemple pour que ça
positionne le dico. D'ailleurs je n'ai pas configuré les groupes gnu.*

Ça marche pour un nouveau message, mais je n'ai pas encore pu adapter pour
un followup, la fonction ne prend pas 1 comme argument et il faut un peu
plus de code dans l'advice (à votre bon c½ur ;)

HTH.

--
Sébastien Kirche
Avatar
drkm
Patrice Karatchentzeff writes:

| (defun flyspell-mode-on () (flyspell-mode 1))
| (add-hook 'text-mode-hook 'flyspell-mode-on)



Je n'utilise toujours pas de correcteur orthographique, je ne peux
donc pas t'aider. Mais une suggestion, tout de même. Je trouve
dangereux de définir une fonction nommée flyspell-mode-on. C'est
utiliser un préfixe déjà utilisé, et risquer donc que le nom soit
employé par Flyspell un jour ou l'autre.

Dans ce cas simple, ceci pourrait très bien faire l'affaire :

(add-hook 'text-mode-hook (lambda () (flyspell-mode 1)))

ou, si tu préfère nommer les valeurs que tu enregistres dans les
hooks :

(defun pk:flyspell-mode-on () (flyspell-mode 1))
(add-hook 'text-mode-hook 'pk:flyspell-mode-on)

--drkm
Avatar
drkm
Sébastien Kirche writes:

| (defadvice gnus-group-mail (around prompt-for-group activate)
| "Always prompt for a group from which to take posting-styles."
| (let ((arg 1))
| ad-do-it))

Ça marche pour un nouveau message, mais je n'ai pas encore pu adapter pour
un followup, la fonction ne prend pas 1 comme argument et il faut un peu
plus de code dans l'advice (à votre bon c½ur ;)



Oulà ... Je commencerais pas remplacer le (let ((arg ...)) par
ad-set-arg dans tous ces advices. Et éventuellement utiliser
ad-get-arg avant pour voir s'il faut ou non surcharger la valeur (mais
là, je n'ai pas le temps de rentrer dans les entrailles de Gnus).

Peut-être que si tu décrivais un peu plus précisément ce que tu
souhaites ... (peut-être, hein)

--drkm
Avatar
Patrice Karatchentzeff
Sébastien Kirche writes:

[...]

Ça c'est sans doute à cause du font-locking qui doit te mettre tout le
buffer en rouge souligné si le dictionnaire n'est pas bon.



C'est en rouge en effet mais pas souligné... mais bon, l'idée est là
je pense... car sous VM, les citations sont d'une autre couleur et je
n'ai pas ce problème (encore qu'il ne s'agit pas du même mode donc...)

Je viens de remarquer que gnus ne garde pas la variable
ispell-dictionary en mémoire... bizarre.

S'il vaut nil, je suppose que ça revient à sélectionner l'anglais, donc si
ton message est en français presque aucun mot n'est juste.

Tu pourrais essayer de positionner le dico via les posting styles ?



OK, je veux bien essayer : une question idiote toutefois : qu'est-ce
donc ces posting styles ? Pourquoi gnus n'hérite pas des variables
d'environnement d'Emacs ?

Voici comment je fais :
,----
| (setq gnus-posting-styles
| '((".*"
| (eval (ispell-change-dictionary "english"))
| (signature "Sébastien Kirche")
| )
| ((message-mail-p)
| (From "Sébastien Kirche "))
| ((message-news-p);".*"
| (From "Sébastien Kirche ")
| (Reply-To "Sébastien Kirche "))
| ("fr.*"
| (eval (ispell-change-dictionary "francais")))
| ("fr.misc.bavardages"
| (X-Face nil)
| (signature "Séki"))
| ("fr.misc.bavardages.dinosaures"
| (Approved "seki"))
| ;;("^us" (eval (ispell-change-dictionary "american")) )
| )
| )
`----



Je ne suis pas sûr de comprendre ce que cela fait... on dirait que
cela choisit le dico suivant les en-têtes ? On ne peut pas avoir un
code plus simple pour un dico unique . Je mettrai un dico d'une autre
langue quand j'en aurai besoin à la main...

Merci

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)       
Avatar
Sébastien Kirche
Le 30 mar 2005, Patrice Karatchentzeff s'est exprimé ainsi :

Je viens de remarquer que gnus ne garde pas la variable
ispell-dictionary en mémoire... bizarre.



Bizarre, oui.
Normalement tu as une valeur locale au buffer ispell-local-dictionary qui
est héritée de ispell-dictionary. Mais celle ci ne doit pas changer toute
seule. Tu as peut-être un mode farceur qui te la change ?

> S'il vaut nil, je suppose que ça revient à sélectionner l'anglais, donc
> si ton message est en français presque aucun mot n'est juste.
>
> Tu pourrais essayer de positionner le dico via les posting styles ?

OK, je veux bien essayer : une question idiote toutefois : qu'est-ce
donc ces posting styles ? Pourquoi gnus n'hérite pas des variables
d'environnement d'Emacs ?



Ben... il le fait normalement, mais il y a peut-être un réglage qui lui fait
changer.

> Voici comment je fais :
> ,----
> > (setq gnus-posting-styles
> > [...]
> > )
> `----

Je ne suis pas sûr de comprendre ce que cela fait... on dirait que cela
choisit le dico suivant les en-têtes ?



En fait les posting styles est en gros un système permettant lors de la
rédaction d'un message de positionner des variables, d'exécuter des
commandes ou des modes et de préciser le contenu de certains entêtes du
message en filtrant sur le nom du groupe (tous, une partie comme fr.* ou un
groupe donné) ou sur un appel de fonction.

Dans mon exemple, je règle mon champ from ou reply-to, ma signature et j'en
profite pour régler le dictionnaire (anglais par défaut ou français pour la
hiérarchie fr.*)

On ne peut pas avoir un code plus simple pour un dico unique . Je mettrai
un dico d'une autre langue quand j'en aurai besoin à la main...



Certainement. Si tu n'as pas de besoin particulier d'avoir des entêtes
changeants, tu peux aussi simplifier et ne garder qu'un
(setq gnus-posting-styles
'((".*" (eval (ispell-change-dictionary "francais")))))

Qui devrait te repositionner le dico à chaque message que tu rédigeras.

--
Sébastien Kirche
Avatar
Patrice Karatchentzeff
Sébastien Kirche writes:

Le 30 mar 2005, Patrice Karatchentzeff s'est exprimé ainsi :

Je viens de remarquer que gnus ne garde pas la variable
ispell-dictionary en mémoire... bizarre.



Bizarre, oui.
Normalement tu as une valeur locale au buffer ispell-local-dictionary qui
est héritée de ispell-dictionary. Mais celle ci ne doit pas changer toute
seule. Tu as peut-être un mode farceur qui te la change ?



C'est possible... quant à trouver l'auteur... je commence à voir une
config un peu tordue... c'est l'embêtement d'utiliser Emacs depuis des
années...

[...]

Certainement. Si tu n'as pas de besoin particulier d'avoir des entêtes
changeants, tu peux aussi simplifier et ne garder qu'un
(setq gnus-posting-styles
'((".*" (eval (ispell-change-dictionary "francais")))))

Qui devrait te repositionner le dico à chaque message que tu rédigeras.



OK, j'ai ajouté cela et la variable est correctement ajusté
désormais... je vais voir ce que cela donne à l'usage pour les
nouveaux messages.

Cela m'ennuie quand même un peu ce bidouillage... m'enfin, du moment
que cela fonctionne...

Merci

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)