OVH Cloud OVH Cloud

emacs et gp

26 réponses
Avatar
Jacques Vernin
Bonjour

J'utilise latex
Pour latex, j'utilise emacs
et pour les maths, j'utilise pari-gp

Tout cela sur imac G5, OS X.4

Il est dit dans la doc de gp qu'on peut interfacer gp et emacs, en
mettant dans .emacs:
(autoload ’gp-mode "/home/kb/GP/lib/pari/pari" nil t)
(autoload ’gp-script-mode "/home/kb/GP/lib/pari/pari" nil t)
(autoload ’gp "/home/kb/GP/lib/pari/pari" nil t)
(autoload ’gpman "/home/kb/GP/lib/pari/pari" nil t)
(setq auto-mode-alist
(cons ’("\\.gp$" . gp-script-mode) auto-mode-alist))

... ce que je fais, sans comprendre que dalle.

Sans succès.

Je précise que mon gp se trouve dans /sw/bin (chargé avec fink)

Quelqu'un a-t-il des informations sur le sujet?
(mon emacs: 22.0.50.1
mon gp: 2.1.7 gprc est dans /sw/etc/ )

Salut à tous
Jacques Vernin

6 réponses

1 2 3
Avatar
Sébastien Kirche
Le 22 décembre 2005 à 14:12, Jacques Vernin s'est exprimé ainsi :

Sébastien Kirche a écrit :
> Le 22 décembre 2005 à 10:12, Jacques Vernin a dit :
>
> > Je reviens sur le sujet!, car je suis au milieu du merdier!
> Je vais essayer de participer, mais je n'ai pas tout suivi en détail
> aussi excusez-si je reviens sur un truc déjà dit.
Merci, c'est sympathique à vous, mais je crains qu'il n'y ait une
incompréhension à la base. Mon truc.gp est un fichier pari-gp, et non
gnuplot.



Bon, ça commence bien :o/
C'est bon google m'a renseigné sur pari-gp.

Ceci dit, je pense que je ne dois pas être trop à côté avec mon histoire
d'environnement.

[...]
Avec gnuplot, je fais, selon ce que je cherche:
"set terminal aqua"
ou
"set terminal latex"
Ici, je fais donc "export DISPLAY=:0 " dans le terminal ce qui permet
de tracer mes courbes de gp à partir du terminal. J'ai mis "export
DISPLAY=:0 " dans mon .profile, mais je n'ai pas l'impression que cela
suffise, puisque'il faut que je le retape lors de l'utilisation,
faut-il le mettre également dans mon .bashrc? cf ce que tu dis
ci-dessous:



Pour être être clair : il faut que tu retapes l'export DISPLAY dans le
terminal avant d'utiliser manuelle ton grapheur ?
Ton shell est bien bash ? (echo $SHELL pour vérifier)

J'ai créé ce dir ~/.MacOSX et j'ai mis dedans "ton" environment.plist
(je n'avais pas de .MacOSX). Evidemment ça merde, car je n'avais rien
corrigé. Cf plus bas pour la suite.



Au passage, il faut au minimum fermer la session pour que les réglages
soient pris en compte (il doivent l'être à l'ouverture de session), au
pire redémarrer.

> J'en ai parlé ici précédemment :
> http://groups.google.com/group/fr.comp.applications.emacs/msg/222b5aa7d0d3428c
> et ici :
> http://groups.google.com/group/fr.comp.applications.emacs/msg/2e72ae9bfe0163da
> Si tu as installé Fink, tu disposes sans doute des Developer Tools
> d'Apple et de «Property List Editor» dans
> /Developer/Applications/Utilities pour faciliter la modification du
> fichier.
Oui, j'ai, mais on peut également le lire avec emacs



Pour une fois, je trouve ça plus facile d'éditer ce fichier dans une
appli étudiée pour que dans Emacs :)

> Si ça peut t'aider, j'ai copié une version light du mien (en
> laissant
> quelques variables pour te faire une idée) que tu peux reprendre :
> http://sebastien.kirche.free.fr/mac/environment.plist
> Je pense que ça devrait déjà te faire progresser, et peut-être
> régler
> tes problèmes.
Donc, si je comprends, il faut que je donne des valeurs aux trois
variables INFOPATH, MANPATH,PATH



Non non, il ne *faut* pas. J'ai laissé ça comme exemple si tu devais en
avoir besoin. Dans le cas présent c'est surtout DISPLAY qu'il faut
avoir. Et peut-être PATH.

Je pourrais par exemple, mettre:
MANPATH= usr/local/Tex/man ???
PATH= /usr/local/bin ??? c'est ce qui est dans .profile, alors que
.bashrc donne "PATH=$PATH:/usr/local/TeX/bin/powerpc-darwin6.6" Je ne
sais pas trop que mettre?
INFO ???
En fait, comme tu le vois, j'ai pas mal de trous!!



Si tu as des fichiers man ou info supplémentaires, ça peut être utile
d'utiliser ces variables. Moi je m'en sers pour trouver dans le man
d'Emacs la doc de la version cvs de gnus (qui est dans mon home) et
celle de la version cvs d'Emacs (qui va par défaut trouver celle de la
v21.2 livrée avec OSX)

Par contre si tu as modifié ton PATH, et que depuis Emacs tu lances des
commandes qui sont dans ce PATH personnalisé, il faut que tu recopie ce
PATh dans l'environnement.plist. Les applis lancées depuis le Finder
n'utilisent pas les environnements définis dans
.profile/bashrc/whatever.

HTH.
--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 22 décembre 2005 à 17:12, Jacques Vernin s'est exprimé ainsi :

> > Ici, je fais donc "export DISPLAY=:0 " dans le terminal ce qui
> > permet de tracer mes courbes de gp à partir du terminal. J'ai mis
> > "export DISPLAY=:0 " dans mon .profile, mais je n'ai pas
> > l'impression que cela suffise, puisque'il faut que je le retape
> > lors de l'utilisation, faut-il le mettre également dans mon
> > .bashrc? cf ce que tu dis ci-dessous:
> Pour être être clair : il faut que tu retapes l'export DISPLAY dans
> le
> terminal avant d'utiliser manuelle ton grapheur ?
> Ton shell est bien bash ? (echo $SHELL pour vérifier)

Oui, qd je fais "echo $SHELL", j'obtiens "/bin/bash"



Ah. Je voulais être sûr aussi j'ai vérifié les fichiers lus par bash au
lancement et .profile n'y figure pas :/

En fait c'est ~/.bash_profile qui est lu après /etc/profile ce qui
explique que dans un terminal tu doives réentrer l'export à chaque fois.

> Pour une fois, je trouve ça plus facile d'éditer ce fichier dans une
> appli étudiée pour que dans Emacs :)

Tu dois DONC avoir raison!



Boah, c'est surtout un avis qui n'engage que moi. Mais comme c'est une
appli spécialisée dans xml, ça permet surtout de ne pas faire d'erreur
de syntaxe, ni d'entrer la mauvaise valeur dans un mauvais champ.

Donc, je ne sais absolument pas que faire; tout au plus, j'ai mis dans
le fichier "environment.plist" ceci (donné en emacs, car je ne sais
pas trop recomier sous la forme «Property List Editor»:



Tu a bien placé le fichier dans le répertoire .MacOSX de ton home
(répertoire invisible dans Finder, et peut-être inexistant si tu n'as
pas modifié ton environnement précédemment).

Pour le créer, un simple « mkdir .MacOSX » dans ton répertoire perso
suivi d'un « mv environment.plist ~/.MacOSX » devrait suffire.

==== > <dict>
<key>DISPLAY</key>
<integer>0</integer>
========= > Mais visiblement, cela n'est pas la bonne méthode, car cela ne change
rien du tout!



M'enfin ?!? Il y a déjà la variable DISPLAY (du type string) avec la
bonne valeur dans mon fichier :op

> Par contre si tu as modifié ton PATH, et que depuis Emacs tu lances
> des commandes qui sont dans ce PATH personnalisé, il faut que tu
> recopie ce PATh dans l'environnement.plist. Les applis lancées
> depuis le Finder n'utilisent pas les environnements définis dans
> .profile/bashrc/whatever.
>
Je n'ai pas -- en tout cas volontairement--modifié mon PATH



Et comment Fink trouve-t-il ses commandes et ce que tu installe par
ailleurs ?

Si tu as suivi les instructions d'installation de Fink, le fichier
/sw/bin/init.[c]sh doit s'en occuper, mais cela ne fonctionnera pas dans
le cas de pari-gp appelé depuis Emacs, il faudrait donc que tu relèves
la valeur de $PATH dans le terminal pour le recopier dans
l'environment.plist.

On va y arriver :)
--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 22 décembre 2005 à 17:12, Jacques Vernin s'est exprimé ainsi :

> > Ici, je fais donc "export DISPLAY=:0 " dans le terminal ce qui
> > permet de tracer mes courbes de gp à partir du terminal. J'ai mis
> > "export DISPLAY=:0 " dans mon .profile, mais je n'ai pas
> > l'impression que cela suffise, puisque'il faut que je le retape
> > lors de l'utilisation, faut-il le mettre également dans mon
> > .bashrc? cf ce que tu dis ci-dessous:
> Pour être être clair : il faut que tu retapes l'export DISPLAY dans
> le
> terminal avant d'utiliser manuelle ton grapheur ?
> Ton shell est bien bash ? (echo $SHELL pour vérifier)

Oui, qd je fais "echo $SHELL", j'obtiens "/bin/bash"



Ah. Je voulais être sûr aussi j'ai vérifié les fichiers lus par bash au
lancement et .profile n'y figure pas :/

En fait c'est ~/.bash_profile qui est lu après /etc/profile ce qui
explique que dans un terminal tu doives réentrer l'export à chaque fois.

> Pour une fois, je trouve ça plus facile d'éditer ce fichier dans une
> appli étudiée pour que dans Emacs :)

Tu dois DONC avoir raison!



Boah, c'est surtout un avis qui n'engage que moi. Mais comme c'est une
appli spécialisée dans xml, ça permet surtout de ne pas faire d'erreur
de syntaxe, ni d'entrer la mauvaise valeur dans un mauvais champ.

Donc, je ne sais absolument pas que faire; tout au plus, j'ai mis dans
le fichier "environment.plist" ceci (donné en emacs, car je ne sais
pas trop recomier sous la forme «Property List Editor»:



Tu a bien placé le fichier dans le répertoire .MacOSX de ton home
(répertoire invisible dans Finder, et peut-être inexistant si tu n'as
pas modifié ton environnement précédemment) ?

Pour le créer, un simple « mkdir .MacOSX » dans ton répertoire perso
suivi d'un « mv environment.plist ~/.MacOSX » devrait suffire.

==== > <dict>
<key>DISPLAY</key>
<integer>0</integer>
========= > Mais visiblement, cela n'est pas la bonne méthode, car cela ne change
rien du tout!



M'enfin ?!? Il y a déjà la variable DISPLAY (du type string) avec la
bonne valeur dans mon fichier :op

> Par contre si tu as modifié ton PATH, et que depuis Emacs tu lances
> des commandes qui sont dans ce PATH personnalisé, il faut que tu
> recopie ce PATh dans l'environnement.plist. Les applis lancées
> depuis le Finder n'utilisent pas les environnements définis dans
> .profile/bashrc/whatever.
>
Je n'ai pas -- en tout cas volontairement--modifié mon PATH



Et comment Fink trouve-t-il ses commandes et ce que tu installes par
ailleurs ?

Si tu as suivi les instructions d'installation de Fink, le fichier
/sw/bin/init.[c]sh que tu dois appeler depuis ton .bashrc doit s'en
occuper, mais cela ne fonctionnera pas dans le cas de pari-gp appelé
depuis Emacs, il faudrait donc que tu relèves la valeur de $PATH dans le
terminal pour le recopier dans l'environment.plist.

On va y arriver :)
--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 22 décembre 2005 à 18:12, Jacques Vernin s'est exprimé ainsi :

Sébastien Kirche a écrit :

> Le 22 décembre 2005 à 17:12, Jacques Vernin s'est exprimé ainsi :
> Ah. Je voulais être sûr aussi j'ai vérifié les fichiers lus par bash
> au lancement et .profile n'y figure pas :/
Bravo! tu fais comment, pour savoir?



J'avais un doute sur les fichiers utilisés par bash dont je me souvenais
qu'ils étaient différents de ceux utilisés par [t]csh ou zsh. Une petite
recherche en ligne («bash profile») m'a confirmé ça.

Là, pas de problème. .macOSX n'existant pas, je l'ai créé (j'ai chargé
je ne sais plus quoi qui me permet de voir les .truc, même s'ils sont
dits invisibles



Ok. Pour info, c'est la seule présence du point au début qui masque les
fichiers et répertoires (ça c'est une convention unix, pour les fichiers
propres à macos il existe aussi un attribut de fichier caché
indépendant).
Il est possible de demander au Finder de monter ces fichiers mais c'est
peu pratique àma.

> > ==== > > > <dict>
> > <key>DISPLAY</key>
> > <integer>0</integer>
> > ========== Mais visiblement, cela n'est pas la bonne méthode, car
> > cela ne change rien du tout!
> M'enfin ?!? Il y a déjà la variable DISPLAY (du type string) avec la
> bonne valeur dans mon fichier :op
Je pensais bien que je faisais une bourde, là!



:)

> > > Par contre si tu as modifié ton PATH, et que depuis Emacs tu
> > > lances des commandes qui sont dans ce PATH personnalisé, il faut
> > > que tu recopie ce PATh dans l'environnement.plist. Les applis
> > > lancées depuis le Finder n'utilisent pas les environnements
> > > définis dans .profile/bashrc/whatever.
> > >
> >
> > Je n'ai pas -- en tout cas volontairement--modifié mon PATH
> Et comment Fink trouve-t-il ses commandes et ce que tu installes par
> ailleurs ?

C'est bien ce que je disais: il est possible que fink m'ait bidouillé
mon PATH, mais c'est "à l'insu de mon propre gré"!!



Je ne sais pas si l'installeur de Fink modifie lui même les fichiers de
l'utilisateur. Quand je l'ai installé il y a environ 2 ans il fallait
ajouter soi-même un «source /sw/bin/init.csh» dans l'un des fichiers
d'init de [t]csh ou un «. /sw/bin/init.sh» pour bash.
Ça lui permet d'ajouter son environnement à l'environnement standard
pour qu'il sache où trouver les binaires et autres fichiers de conf ou
de manuel.

-
> Si tu as suivi les instructions d'installation de Fink, le fichier
> /sw/bin/init.[c]sh que tu dois appeler depuis ton .bashrc doit s'en
> occuper, mais cela ne fonctionnera pas dans le cas de pari-gp appelé
> depuis Emacs, il faudrait donc que tu relèves la valeur de $PATH
> dans le terminal pour le recopier dans l'environment.plist.

Ce que j'ai donc fait, voir ci-dessus. Mais je n'ai pas de
/sw/bin/init.sh dans mon .bashrc. Faudrait-il le rajouter?



S'il n'y est pas, il faudrait l'ajouter sans oublier le point au début.
L'idéal serait de voir s'il ne se trouve pas dans un autre fichier de
config (voir ce que je dit juste en dessous).

Donc, je vais chercher mon PATH. J'ignore TOTALEMENT comment je dois
faire, alors, je tape: amarseille-151-1-10-37:~ jver$ echo $PATH
/sw/bin:/sw/sbin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/TeX/bin/powerpc-darwin6.6:/usr/X11R6/bin



C'est bizarre, ton PATH contient /sw/bin donc l'environnement a bien été
modifié pour inclure les commandes et applications installées par Fink.
Si tu n'as rien modifié toi-même, ça a pu être automagique à
l'installation. Peut-être dans un autre fichier comme .login ?

que jemets derechef dans le PATH de environment.plist.

Est-cela que tu attends de moi, chef?



Ça s'en rapproche ;)

Je mets en brouillon; j'éteint; je rallume et je vois.

D'où il appert:
- je n'ai plus besoin de faire export truc dans le terminal pour
executer un ploth, la manip par .bash_profile a bien fonctionné.
Bravo!



Ouf, un point réglé.

- en revanche, quand je lance les mêmes instructions à partir d'emacs,
j'obtiens encor et toujours:"? r /Users/jver/Desktop/gp/testgp.gp
*** no X server.
" qui me désespère.



Bon, il manque encore quelque chose.
Vérifie l'orthographe des variables et leur valeur. Attention à une
espace qui se serait glissée au début ou à la fin.

J'ai vu que tu mentionnais le répertoire .macOSX or c'est normalement
.MacOSX même si MacOS X a été bidouillé par Apple pour ignorer la casse
des noms de fichiers (je ne sais pas exactement à quel point), à la base
c'est un système unix (BSD) et unix est chatouilleux sur l'orthographe
des noms de fichiers :)

> On va y arriver :)
Le Ciel vous entende!!!



:)

--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 23 décembre 2005 à 15:12, Jacques Vernin vraute :

> Je ne sais pas si l'installeur de Fink modifie lui même les fichiers
> de l'utilisateur. Quand je l'ai installé il y a environ 2 ans il
> fallait ajouter soi-même un «source /sw/bin/init.csh» dans l'un des
> fichiers d'init de [t]csh ou un «. /sw/bin/init.sh» pour bash. Ça
> lui permet d'ajouter son environnement à l'environnement standard
> pour qu'il sache où trouver les binaires et autres fichiers de conf
> ou de manuel.

Je ne me rappelle plus. Tu me mettais où? dans ton path?



Ben non. Relis moi : «dans l'un des fichiers d'init de [t]csh» ou dans
l'un de ceux de bash. Disons .bash_profile. C'est une ligne à rajouter.

Moi, mon PATH étant
"/sw/bin:/sw/sbin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/TeX/bin/powerpc-darwin6.6:/usr/X11R6/bin
", je n'y ai pas de init.sh Je peux l'ajouter si tu penses que c'est
utile. Je ne l'ai pas fait, ce coup-ci.



Attention pas dans le Path mais éventuellement dans .bash_profile
peut-être. Par curiosité, que vaut $MANPATH ou $INFOPATH chez toi ?

> > > Si tu as suivi les instructions d'installation de Fink, le
> > > fichier /sw/bin/init.[c]sh que tu dois appeler depuis ton
> > > .bashrc doit s'en occuper, mais cela ne fonctionnera pas dans le
> > > cas de pari-gp appelé depuis Emacs, il faudrait donc que tu
> > > relèves la valeur de $PATH dans le terminal pour le recopier
> > > dans l'environment.plist.
> >
> > Ce que j'ai donc fait, voir ci-dessus. Mais je n'ai pas de
> > /sw/bin/init.sh dans mon .bashrc. Faudrait-il le rajouter?
> S'il n'y est pas, il faudrait l'ajouter sans oublier le point au
> début. L'idéal serait de voir s'il ne se trouve pas dans un autre
> fichier de config (voir ce que je dit juste en dessous).
J'ajoute donc ". /sw/bin/init.sh" dans mon .bashrc.
Peux-tu me dire à quoi sert ce point? (qui n'est pas, je pense le
point de ".init.sh". Je ne sais pas ce qu'il signifie.



C'est équivalent à un #include en C, ça charge un script shell qui peut
servir à définir comme ici des variables d'environnement. Quand le
fichier inclus est fini, la main revient au script appelant.

> C'est bizarre, ton PATH contient /sw/bin donc l'environnement a bien
> été modifié pour inclure les commandes et applications installées
> par Fink. Si tu n'as rien modifié toi-même, ça a pu être automagique
> à l'installation.
Oui, automatique selon toute probabilité; je n'ai rien fait. Enfin, Je
pense que je n'ai rien fait
Peut-être dans un autre fichier comme .login ?
Je n'ai pas de .login (du moins dans ~/ -- ni d'ailleurs, ailleurs)



Faudrait passer en revue tes fichiers, avec grep par exemple.

> > - en revanche, quand je lance les mêmes instructions à partir
> > d'emacs,
> > j'obtiens encor et toujours:"? r /Users/jver/Desktop/gp/testgp.gp
> > *** no X server.
> > " qui me désespère.
> Bon, il manque encore quelque chose. Vérifie l'orthographe des
> variables et leur valeur. Attention à une
> espace qui se serait glissée au début ou à la fin.
regardé à la loupe



Bon.

> J'ai vu que tu mentionnais le répertoire .macOSX or c'est
> normalement .MacOSX même si MacOS X a été bidouillé par Apple pour
> ignorer la casse des noms de fichiers (je ne sais pas exactement à
> quel point), à la base c'est un système unix (BSD) et unix est
> chatouilleux sur l'orthographe des noms de fichiers :)
Non, c'était bien .MacOSX; le reste est une faute d'orthographe!

Finalement, la seule chose que j'ai modifiée est que j'ai ajouté
" . /sw/bin/init.sh" dans mon .bashrc.



Que retourne un M-x getenv RET DISPLAY RET ?
-> tu dois voir :0 (:0.0 si tu as bien mon fichier environment.plist)

ou un M-x getenv RET PATH RET ?
-> tu dois voir les répertoire /sw dans le résultat.

Résultat:
Ce qui marchait, marche
Ce qui ne marchait pas, ne marche pas.



C'est qu'on n'a pas encore terminé :)

Je crains d'abuser de ta patience.



Mais non :)

--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 23 décembre 2005 à 15:12, Jacques Vernin a dit :

J'ajoute

... autrefois (il y a une semaine), lorsque j'ouvrais un fichier
chose.gp, il s'ouvrait comme fichier gnuplot. Maintenant que j'ai tout
chamboulé, mes chose.gp sont des fichiers pari-gp.

Quand je lis un fichier chose.gp en gnuplot, je peux toujours faire
M-x
gnuplot-mode qui marche parfaitement. Mais peut-être serait-il
possible de dire à emacs que désormais, ce sont les fichiers nommés
chose.gnp qui sont gnuplot, afin de les distinguer. Comment fait-on?



Je crois qu'Olivier t'avais suggéré une modif dans ce sens samedi
dernier au sujet de auto-mode-alist :
news:43a43e0a$0$29217$


Par ailleurs, parmi ce qui ne marche pas trop avec pari-gp, il y a que
je n'ai pas de coloration syntaxique, qui est tout de même bien
pratique. On fait comment pour l'avoir? (Non, option Syntax
highloghting ne donne rien)



Est-ce que M-x font-lock-mode change quelque chose ?

--
Sébastien Kirche
1 2 3