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

ispell et dicoperso avec emacs-22

8 réponses
Avatar
frangi
Bonjour,
J'ai installé hier emacs-22.0.50 (via fink). Tout se passe très bien,
sauf avec ispell. Quand je le lance, il me renvoie le message suivant
:

<ispell-init-process: Error: The file "/Users/frangi/.dicoperso" is
not in the proper format. >

Autrement dit, mon dictionnaire personnel n'est plus reconnu alors
qu'il l'était sous emacs-21.3.50. Son format est .txt.
D'autre part, pour information, j'ai ceci dans mon .emacs:

<(setq ispell-personal-dictionary "~/.dicoperso")>

Si quelqu'un voit la cause du problème... Je le remercie infiniment.
--
====================================================
François GIRON -- Mac OS X 10.4.7 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html
~ fgiron\at{}mac.com ~
====================================================

8 réponses

Avatar
frangi
(François Giron) writes:

Bonjour,
J'ai installé hier emacs-22.0.50 (via fink). Tout se passe très bien,
sauf avec ispell. Quand je le lance, il me renvoie le message suivant
:

<ispell-init-process: Error: The file "/Users/frangi/.dicoperso" is
not in the proper format. >

Autrement dit, mon dictionnaire personnel n'est plus reconnu alors
qu'il l'était sous emacs-21.3.50. Son format est .txt.
D'autre part, pour information, j'ai ceci dans mon .emacs:

<(setq ispell-personal-dictionary "~/.dicoperso")>

Si quelqu'un voit la cause du problème... Je le remercie infiniment.



La solution m'est venue en écrivant le précédent message: il fallait
juste remplacer *~/.dicoperso* par *${HOME}/.dicoperso* dans la ligne
citée du fichier ${HOME}/.emacs.
--
====================================================
François GIRON -- Mac OS X 10.4.7 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html
~ fgironat{}mac.com ~
====================================================
Avatar
Sébastien Kirche
Le 13 août 2006 à 23:53, François Giron vraute :

La solution m'est venue en écrivant le précédent message: il fallait
juste remplacer *~/.dicoperso* par *${HOME}/.dicoperso* dans la ligne
citée du fichier ${HOME}/.emacs.



Pour une solution elisp, je pense qu'il eut sinon suffi d'encadrer le
"~/.dicoperso" par un (expand-file-name) qui remplit la même fonction
que le ${} dans le shell.

D'ailleurs je me demande si le ${} n'est pas shell-dependant, i.e est-ce
que ça fonctionne quel que soit le shelle de l'utilisateur ?
--
Sébastien Kirche
Avatar
frangi
Sébastien Kirche writes:

Le 13 août 2006 à 23:53, François Giron vraute :

La solution m'est venue en écrivant le précédent message: il fallait
juste remplacer *~/.dicoperso* par *${HOME}/.dicoperso* dans la ligne
citée du fichier ${HOME}/.emacs.



Pour une solution elisp, je pense qu'il eut sinon suffi d'encadrer le
"~/.dicoperso" par un (expand-file-name) qui remplit la même fonction
que le ${} dans le shell.



Ah ? Et comment j'écris ça au juste ? Comme ceci :

(setq ispell-personal-dictionary (expand-file-name "~/.dicoperso")) ?

Désolé, mais je ne suis pas encore assez versé dans l'Elisp.


D'ailleurs je me demande si le ${} n'est pas shell-dependant, i.e est-ce
que ça fonctionne quel que soit le shelle de l'utilisateur ?



Ça fonctionne avec bash et zsh. Pour csh ou zsh, je ne me souviens
plus.
--
====================================================
François GIRON -- Mac OS X 10.4.7 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html
~ fgironat{}mac.com ~
====================================================
Avatar
Sébastien Kirche
Le 14 août 2006 à 18:53, François Giron a dit :

Sébastien Kirche writes:

> Pour une solution elisp, je pense qu'il eut sinon suffi d'encadrer
> le "~/.dicoperso" par un (expand-file-name) qui remplit la même
> fonction que le ${} dans le shell.

Ah ? Et comment j'écris ça au juste ? Comme ceci :

(setq ispell-personal-dictionary (expand-file-name "~/.dicoperso")) ?



Voilà.

Désolé, mais je ne suis pas encore assez versé dans l'Elisp.



Je suis passé par là, comme tous les autres contributeurs du groupe.

Un moyen d'expérimenter est de passer dans le *scratch* buffer qui
permet d'évaluer de l'elisp, de saisir la portion expand-file-name de la
ligne ou de la coller et de l'évaluer (exécuter) en se plaçant après la
dernière parenthèse fermante et d'utiliser
- C-x C-e -> l'expression est évaluée et sa valeur est affichée dans le
minibuffer
- C-j -> la valeur de l'expression est insérée dans la ligne suivante

Si la valeur correspond à ce qu'on veut obtenir, on peut alors utiliser
l'expression dans son .emacs.

Un autre truc (que je n'utilise pas assez) c'est ielm (M-x ielm RET) qui
propose une sorte de shell elisp et qui est assez pratique.

> D'ailleurs je me demande si le ${} n'est pas shell-dependant, i.e
> est-ce que ça fonctionne quel que soit le shelle de l'utilisateur ?

Ça fonctionne avec bash et zsh. Pour csh ou zsh, je ne me souviens
plus.



Euh oui, dans le shell. Mais dans le .emacs ? Ça ne semble pas
fonctionner ici, ou c'est ispell qui fait l'expansion de la variable au
moment de l'utiliser ?
--
Sébastien Kirche
Avatar
frangi
Sébastien Kirche writes:

Le 14 août 2006 à 18:53, François Giron a dit :

Sébastien Kirche writes:

> Pour une solution elisp, je pense qu'il eut sinon suffi d'encadrer
> le "~/.dicoperso" par un (expand-file-name) qui remplit la même
> fonction que le ${} dans le shell.

Ah ? Et comment j'écris ça au juste ? Comme ceci :

(setq ispell-personal-dictionary (expand-file-name "~/.dicoperso")) ?



Voilà.

Désolé, mais je ne suis pas encore assez versé dans l'Elisp.



Je suis passé par là, comme tous les autres contributeurs du groupe.

Un moyen d'expérimenter est de passer dans le *scratch* buffer qui
permet d'évaluer de l'elisp, de saisir la portion expand-file-name de la
ligne ou de la coller et de l'évaluer (exécuter) en se plaçant après la
dernière parenthèse fermante et d'utiliser
- C-x C-e -> l'expression est évaluée et sa valeur est affichée dans le
minibuffer
- C-j -> la valeur de l'expression est insérée dans la ligne suivante

Si la valeur correspond à ce qu'on veut obtenir, on peut alors utiliser
l'expression dans son .emacs.

Un autre truc (que je n'utilise pas assez) c'est ielm (M-x ielm RET) qui
propose une sorte de shell elisp et qui est assez pratique.

> D'ailleurs je me demande si le ${} n'est pas shell-dependant, i.e
> est-ce que ça fonctionne quel que soit le shelle de l'utilisateur ?

Ça fonctionne avec bash et zsh. Pour csh ou zsh, je ne me souviens
plus.



Euh oui, dans le shell. Mais dans le .emacs ? Ça ne semble pas
fonctionner ici, ou c'est ispell qui fait l'expansion de la variable au
moment de l'utiliser ?



Merci pour ces précieuses explications. Je les note pour m'en
souvenir.
Je crains fort de rester longtemps débutant, les langages de
programmation nécessitant une pratique régulière que, par ma
profession, je ne suis pas appelé à observer. Mais je ne manque pas de
noter ci et là quelque astuce.
Pour ce qui concerne GNU Emacs, mon réflexe est d'aller sur votre site
au moindre problème (parce que je suis sur Mac), ainsi que celui de
Mathieu Moy, avant de débarquer ici.
Donc encore merci. :-)
--
====================================================
François GIRON -- Mac OS X 10.4.7 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html
~ fgironat{}mac.com ~
====================================================
Avatar
frangi
Sébastien Kirche writes:

Le 14 août 2006 à 18:53, François Giron a dit :

Sébastien Kirche writes:

> Pour une solution elisp, je pense qu'il eut sinon suffi d'encadrer
> le "~/.dicoperso" par un (expand-file-name) qui remplit la même
> fonction que le ${} dans le shell.

Ah ? Et comment j'écris ça au juste ? Comme ceci :

(setq ispell-personal-dictionary (expand-file-name "~/.dicoperso")) ?



Voilà.

Désolé, mais je ne suis pas encore assez versé dans l'Elisp.



Je suis passé par là, comme tous les autres contributeurs du groupe.

Un moyen d'expérimenter est de passer dans le *scratch* buffer qui
permet d'évaluer de l'elisp, de saisir la portion expand-file-name de la
ligne ou de la coller et de l'évaluer (exécuter) en se plaçant après la
dernière parenthèse fermante et d'utiliser
- C-x C-e -> l'expression est évaluée et sa valeur est affichée dans le
minibuffer
- C-j -> la valeur de l'expression est insérée dans la ligne suivante

Si la valeur correspond à ce qu'on veut obtenir, on peut alors utiliser
l'expression dans son .emacs.

Un autre truc (que je n'utilise pas assez) c'est ielm (M-x ielm RET) qui
propose une sorte de shell elisp et qui est assez pratique.

> D'ailleurs je me demande si le ${} n'est pas shell-dependant, i.e
> est-ce que ça fonctionne quel que soit le shelle de l'utilisateur ?

Ça fonctionne avec bash et zsh. Pour csh ou zsh, je ne me souviens
plus.



Euh oui, dans le shell. Mais dans le .emacs ? Ça ne semble pas
fonctionner ici, ou c'est ispell qui fait l'expansion de la variable au
moment de l'utiliser ?



Je reprends le sujet juste pour dire que la ligne

(setq ispell-personal-dictionary (expand-file-name "~/.dicoperso"))

ne fonctionne pas bien. C'est en fait le « ~/ » qui pose problème. Et
si on le remplace par ${HOME}, ça ne va pas mieux. Il faut tout
simplement les supprimer et écrire :

(setq ispell-personal-dictionary (expand-file-name ".dicoperso"))

J'en conclus que expand-file-name sait aller chercher un fichier ou un
sous-répertoire dans le répertoire utilisateur.
--
====================================================
François GIRON -- Mac OS X 10.4.7 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html
~ fgironat{}mac.com ~
====================================================
Avatar
Sébastien Kirche
Le 18 août 2006 à 23:17, François Giron a dit :

(setq ispell-personal-dictionary (expand-file-name "~/.dicoperso"))

ne fonctionne pas bien. C'est en fait le « ~/ » qui pose problème. Et
si on le remplace par ${HOME}, ça ne va pas mieux.



Ha ? Quelle est la valeur retournée par (expand-file-name "~/.dicoperso") ?

Ici quand je l'évalue ça retourne "/home/seki/.dicoperso" ce qui est
correct par rapport à ~/.

Il faut tout simplement les supprimer et écrire :

(setq ispell-personal-dictionary (expand-file-name ".dicoperso"))

J'en conclus que expand-file-name sait aller chercher un fichier ou un
sous-répertoire dans le répertoire utilisateur.



C'est bizarre. Comme l'explique le doc d'expand-file-name si le chemin +
nom qui lui est donné en entrée ne commence pas par un "/" et qu'on
n'indique pas en second paramètre un chemin duquel partir le point de
départ pour l'expansion est default-directory.

Si on n'a pas changé de répertoire courant depuis l'exécution du .emacs,
ce sera le répertoire contenant le .emacs donc normalement $HOME et ça
marche mais (ça peut ne plus fonctionner si on change de répertoire dans
le .emacs avec la fonction cd )

Par contre la doc précise bien que "~/" est remplacé par le HOME...

--
Sébastien Kirche
Avatar
frangi
Sébastien Kirche writes:

Le 18 août 2006 à 23:17, François Giron a dit :

(setq ispell-personal-dictionary (expand-file-name "~/.dicoperso"))

ne fonctionne pas bien. C'est en fait le « ~/ » qui pose problème. Et
si on le remplace par ${HOME}, ça ne va pas mieux.



Ha ? Quelle est la valeur retournée par (expand-file-name "~/.dicoperso") ?



Toujours cette erreur :
Error: The file "Users/frangi/.dicoperso" is not in the proper format.

Ici quand je l'évalue ça retourne "/home/seki/.dicoperso" ce qui est
correct par rapport à ~/.

Il faut tout simplement les supprimer et écrire :

(setq ispell-personal-dictionary (expand-file-name ".dicoperso"))

J'en conclus que expand-file-name sait aller chercher un fichier ou un
sous-répertoire dans le répertoire utilisateur.



C'est bizarre. Comme l'explique le doc d'expand-file-name si le chemin +
nom qui lui est donné en entrée ne commence pas par un "/" et qu'on
n'indique pas en second paramètre un chemin duquel partir le point de
départ pour l'expansion est default-directory.



En effet, j'ai lu cela, mais en fait, (expand-file-name ".dicoperso"))
ne fonctionne pas mieux et me donne également une erreur.

Si on n'a pas changé de répertoire courant depuis l'exécution du .emacs,
ce sera le répertoire contenant le .emacs donc normalement $HOME et ça
marche mais (ça peut ne plus fonctionner si on change de répertoire dans
le .emacs avec la fonction cd )



Je n'avais pas réfléchi à ça, mais effectivement, lorsque j'ai fait
l'essai, je n'avais pas changé de répertoire.

Par contre la doc précise bien que "~/" est remplacé par le HOME...



Ce qui semble bien fonctionner, c'est (expand-file-name
"$HOME/.dicoperso")) tandis que ni ${HOME}, ni ~/ ne fonctionnent.

--
====================================================
François GIRON -- Mac OS X 10.4.7 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html
~ fgironat{}mac.com ~
====================================================