je viens de me mettre à emacs (21.3 pour windows) et le mode python ne
semble pas être installé par défaut. J'ai chargé le mode mais je n'ai
pas trouvé dans la doc comment l'installer et le lancer.
merci d'avance.
je viens de me mettre à emacs (21.3 pour windows) et le mode python ne
semble pas être installé par défaut. J'ai chargé le mode mais je n'ai
pas trouvé dans la doc comment l'installer et le lancer.
merci d'avance.
je viens de me mettre à emacs (21.3 pour windows) et le mode python ne
semble pas être installé par défaut. J'ai chargé le mode mais je n'ai
pas trouvé dans la doc comment l'installer et le lancer.
merci d'avance.
- les répertoires lisp et site-lisp fournis avec Emacs, mais je te
déconseille d'y mettre le mode que tu as récupéré
Ensuite pour te servir du mode python, tu peux tester interactivement
par un M-x load-library python.el (à remplacer par le bon nom).
Si c'est concluant, tu peux ajouter un (require 'python-mode) dans ton
fichier ~/.emacs (à créer s'il n'existe pas) pour que ça soit
automatiquement chargé et activé à la prochaine utilisation d'Emacs.
- les répertoires lisp et site-lisp fournis avec Emacs, mais je te
déconseille d'y mettre le mode que tu as récupéré
Ensuite pour te servir du mode python, tu peux tester interactivement
par un M-x load-library python.el (à remplacer par le bon nom).
Si c'est concluant, tu peux ajouter un (require 'python-mode) dans ton
fichier ~/.emacs (à créer s'il n'existe pas) pour que ça soit
automatiquement chargé et activé à la prochaine utilisation d'Emacs.
- les répertoires lisp et site-lisp fournis avec Emacs, mais je te
déconseille d'y mettre le mode que tu as récupéré
Ensuite pour te servir du mode python, tu peux tester interactivement
par un M-x load-library python.el (à remplacer par le bon nom).
Si c'est concluant, tu peux ajouter un (require 'python-mode) dans ton
fichier ~/.emacs (à créer s'il n'existe pas) pour que ça soit
automatiquement chargé et activé à la prochaine utilisation d'Emacs.
Pourquoi déconseilles-tu l'utilisation de 'site-lisp' ici ?
Un point que je n'ai jamais tranché (car je n'ai jamais
vraiment cherché), c'est s'il est nécessaire d'utiliser le
'site-lisp' « versionné » ou non, lorsque l'on byte-compile la
bibliothèque. Par « versionné », j'entends le répertoire
'.../emacs/22.0.50/site-lisp' par opposition au répertoire
'.../emacs/site-lisp', par exemple.
Pourquoi déconseilles-tu l'utilisation de 'site-lisp' ici ?
Un point que je n'ai jamais tranché (car je n'ai jamais
vraiment cherché), c'est s'il est nécessaire d'utiliser le
'site-lisp' « versionné » ou non, lorsque l'on byte-compile la
bibliothèque. Par « versionné », j'entends le répertoire
'.../emacs/22.0.50/site-lisp' par opposition au répertoire
'.../emacs/site-lisp', par exemple.
Pourquoi déconseilles-tu l'utilisation de 'site-lisp' ici ?
Un point que je n'ai jamais tranché (car je n'ai jamais
vraiment cherché), c'est s'il est nécessaire d'utiliser le
'site-lisp' « versionné » ou non, lorsque l'on byte-compile la
bibliothèque. Par « versionné », j'entends le répertoire
'.../emacs/22.0.50/site-lisp' par opposition au répertoire
'.../emacs/site-lisp', par exemple.
Sébastien Kirche writes:
> - les répertoires lisp et site-lisp fournis avec Emacs, mais je te
> déconseille d'y mettre le mode que tu as récupéré
Tiens. Pourquoi ? J'installe souvent des bibliothèques dans
'site-lisp'. On n'est jamais le seul utilisateur de sa machine.
Il y a au moins un compte utilisateur et un compte root. Et dans
ce cas, les deux peuvent vouloir utiliser ce mode.
Il y a bien des cas où l'on veut réellement installer une
bibliothèque pour son usage strictement personnel, mais je dirais
qu'il s'agit alors plus de fichiers de configuration que de
bibliothèques. Ou que l'on ne dispose pas des droits nécessaires
(au sens droits Unix ou contrat d'utilisation de la machine).
Pourquoi déconseilles-tu l'utilisation de 'site-lisp' ici ?
[...]
En plus de ceux-là, il peut être intéressant de se créer un
répertoire personnel, par exemple '~/.emacs.d/home-lisp', qu'il
est simple de gérer en commençant son '~/.emacs.el' par :
;; La « variabilisation » et la « listification » du
;; 'home-lisp' sont laissées en exercice (utilisation d'une
;; variable pour renseigner le répertoire, et permettre
;; d'avoir une liste de répertoire, pour s'approcher d'un
;; 'load-path' personnel).
;;
(let ((default-directory "~/.emacs.d/home-lisp"))
(load-file "subdirs.el"))
le fichier '~/.emacs.d/home-lisp/subdirs.el' contenant, tout
comme les 'subdirs.el' des répertoires standards :
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
(normal-top-level-add-subdirs-to-load-path))
L'utilisation de cette fonction permet de gérer ce répertoire
personnel comme les répertoires standards en regard du
'load-path' (utilisation d'un fichier '.nosearch', par exemple,
ou ajout simple d'un répertoire, sans devoir modifier son
'~/.emacs.el').
L'étape suivante étant de garder cette architecture
décentralisée, et d'y ajouter le support automatique des fichiers
'loaddefs.el', qui sont gérés de manière spéciale pour le
répertoire '.../emacs/22.0.50/lisp', au moyen d'un petit ensemble
de routines additionnelles. C'est d'ailleurs selon moins des
routines qui font défaut dans la distribution standard.
> Ensuite pour te servir du mode python, tu peux tester
> interactivement par un M-x load-library python.el (à remplacer par
> le bon nom).
Si je ne me trompe pas, cela va dans tous les cas charger la
version source de la bibliothèque, plutôt que la version
byte-compilée. Je dirais plutôt : 'M-x load-library python' (à
remarquer que charger explicitement une bibliothèque terminant
par '.el' est justement intéressant pour obtenir un backtrace
plus clair, puisqu'Emacs charge alors le source et non le
byte-code).
> Si c'est concluant, tu peux ajouter un (require 'python-mode) dans
> ton fichier ~/.emacs (à créer s'il n'existe pas) pour que ça soit
> automatiquement chargé et activé à la prochaine utilisation d'Emacs.
Je déconseillerais cela. Ça voudrait dire que la bibliothèque
serait chargée à chaque lancement normal d'Emacs. On en arrive
vite à un chargement très lent, ce temps étant gaspillé à charger
des bibliothèques dont on ne se servira pas dans cette session,
ou qui de toute façon serait chargées les unes après les autres
lors de leur première utilisation (ce qui se fait beaucoup moins
sentir).
En général, pour installer un mode d'édition, il suffit de
renseigner quelques valeurs à Emacs. Si la bibliothèque est bien
faite, cela est fait dans le code source au moyen de cookies
d'autoload, et il suffit de générer le 'loaddefs.el' associé,
et de s'assurer de l'évaluer au chargement d'Emacs. Sinon, il suffit
en général de s'assurer que tout est ok en regard du 'load-path', et
d'ajouter ce qu'il faut à 'auto-mode-alist', 'interpreter-mode-alist'
et 'magic-mode-alist', et de renseigner l'autoload qui va bien
(éventuellement les autoloads, selon les points d'entrée principaux,
par exemple si le mode pour Python inclus une interface vers
l'interpréteur).
Donc, si la bibliothèque est bien faite, on génère le
'loaddefs.el' qui est chargé automatiquement par son
'subdirs.el', sinon on le crée à la main ou on ajoute
l'équivalent à son '~/.emacs.el' :
(autoload 'python-mode "python-mode"
"Major mode for editing Python files." t)
(push '(".py$" . python-mode) auto-mode-alist)
(push '("python" . python-mode) interpreter-mode-alist)
Je pense qu'il s'agit des grands points de l'installation d'une
bibliothèque. Je ne sais pas si j'ai oublié quelque chose
d'important ni si j'ai dit des bêtises. Cela est valable pour
GNU Emacs, je sais que XEmacs possède un système de gestion de
packages que je ne connais pas (et dont je n'ai pas entendu que
du bien). Enfin, le code ci-dessus n'est pas testé : à vos
risques et périls.
Pour terminer, je sais que Matthieu a écrit une page sur le
sujet : <URL:http://www-verimag.imag.fr/~moy/emacs/>. Je n'ai
pas pris le temps de la lire en détail, mais il propose une
automatisation de la procédure. Cela peut intéresser Simon. Au
fait, si tu as des remarques sur ce que je viens de dire,
Matthieu, n'hésite pas.
--drkm
Sébastien Kirche writes:
> - les répertoires lisp et site-lisp fournis avec Emacs, mais je te
> déconseille d'y mettre le mode que tu as récupéré
Tiens. Pourquoi ? J'installe souvent des bibliothèques dans
'site-lisp'. On n'est jamais le seul utilisateur de sa machine.
Il y a au moins un compte utilisateur et un compte root. Et dans
ce cas, les deux peuvent vouloir utiliser ce mode.
Il y a bien des cas où l'on veut réellement installer une
bibliothèque pour son usage strictement personnel, mais je dirais
qu'il s'agit alors plus de fichiers de configuration que de
bibliothèques. Ou que l'on ne dispose pas des droits nécessaires
(au sens droits Unix ou contrat d'utilisation de la machine).
Pourquoi déconseilles-tu l'utilisation de 'site-lisp' ici ?
[...]
En plus de ceux-là, il peut être intéressant de se créer un
répertoire personnel, par exemple '~/.emacs.d/home-lisp', qu'il
est simple de gérer en commençant son '~/.emacs.el' par :
;; La « variabilisation » et la « listification » du
;; 'home-lisp' sont laissées en exercice (utilisation d'une
;; variable pour renseigner le répertoire, et permettre
;; d'avoir une liste de répertoire, pour s'approcher d'un
;; 'load-path' personnel).
;;
(let ((default-directory "~/.emacs.d/home-lisp"))
(load-file "subdirs.el"))
le fichier '~/.emacs.d/home-lisp/subdirs.el' contenant, tout
comme les 'subdirs.el' des répertoires standards :
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
(normal-top-level-add-subdirs-to-load-path))
L'utilisation de cette fonction permet de gérer ce répertoire
personnel comme les répertoires standards en regard du
'load-path' (utilisation d'un fichier '.nosearch', par exemple,
ou ajout simple d'un répertoire, sans devoir modifier son
'~/.emacs.el').
L'étape suivante étant de garder cette architecture
décentralisée, et d'y ajouter le support automatique des fichiers
'loaddefs.el', qui sont gérés de manière spéciale pour le
répertoire '.../emacs/22.0.50/lisp', au moyen d'un petit ensemble
de routines additionnelles. C'est d'ailleurs selon moins des
routines qui font défaut dans la distribution standard.
> Ensuite pour te servir du mode python, tu peux tester
> interactivement par un M-x load-library python.el (à remplacer par
> le bon nom).
Si je ne me trompe pas, cela va dans tous les cas charger la
version source de la bibliothèque, plutôt que la version
byte-compilée. Je dirais plutôt : 'M-x load-library python' (à
remarquer que charger explicitement une bibliothèque terminant
par '.el' est justement intéressant pour obtenir un backtrace
plus clair, puisqu'Emacs charge alors le source et non le
byte-code).
> Si c'est concluant, tu peux ajouter un (require 'python-mode) dans
> ton fichier ~/.emacs (à créer s'il n'existe pas) pour que ça soit
> automatiquement chargé et activé à la prochaine utilisation d'Emacs.
Je déconseillerais cela. Ça voudrait dire que la bibliothèque
serait chargée à chaque lancement normal d'Emacs. On en arrive
vite à un chargement très lent, ce temps étant gaspillé à charger
des bibliothèques dont on ne se servira pas dans cette session,
ou qui de toute façon serait chargées les unes après les autres
lors de leur première utilisation (ce qui se fait beaucoup moins
sentir).
En général, pour installer un mode d'édition, il suffit de
renseigner quelques valeurs à Emacs. Si la bibliothèque est bien
faite, cela est fait dans le code source au moyen de cookies
d'autoload, et il suffit de générer le 'loaddefs.el' associé,
et de s'assurer de l'évaluer au chargement d'Emacs. Sinon, il suffit
en général de s'assurer que tout est ok en regard du 'load-path', et
d'ajouter ce qu'il faut à 'auto-mode-alist', 'interpreter-mode-alist'
et 'magic-mode-alist', et de renseigner l'autoload qui va bien
(éventuellement les autoloads, selon les points d'entrée principaux,
par exemple si le mode pour Python inclus une interface vers
l'interpréteur).
Donc, si la bibliothèque est bien faite, on génère le
'loaddefs.el' qui est chargé automatiquement par son
'subdirs.el', sinon on le crée à la main ou on ajoute
l'équivalent à son '~/.emacs.el' :
(autoload 'python-mode "python-mode"
"Major mode for editing Python files." t)
(push '("\.py$" . python-mode) auto-mode-alist)
(push '("python" . python-mode) interpreter-mode-alist)
Je pense qu'il s'agit des grands points de l'installation d'une
bibliothèque. Je ne sais pas si j'ai oublié quelque chose
d'important ni si j'ai dit des bêtises. Cela est valable pour
GNU Emacs, je sais que XEmacs possède un système de gestion de
packages que je ne connais pas (et dont je n'ai pas entendu que
du bien). Enfin, le code ci-dessus n'est pas testé : à vos
risques et périls.
Pour terminer, je sais que Matthieu a écrit une page sur le
sujet : <URL:http://www-verimag.imag.fr/~moy/emacs/>. Je n'ai
pas pris le temps de la lire en détail, mais il propose une
automatisation de la procédure. Cela peut intéresser Simon. Au
fait, si tu as des remarques sur ce que je viens de dire,
Matthieu, n'hésite pas.
--drkm
Sébastien Kirche writes:
> - les répertoires lisp et site-lisp fournis avec Emacs, mais je te
> déconseille d'y mettre le mode que tu as récupéré
Tiens. Pourquoi ? J'installe souvent des bibliothèques dans
'site-lisp'. On n'est jamais le seul utilisateur de sa machine.
Il y a au moins un compte utilisateur et un compte root. Et dans
ce cas, les deux peuvent vouloir utiliser ce mode.
Il y a bien des cas où l'on veut réellement installer une
bibliothèque pour son usage strictement personnel, mais je dirais
qu'il s'agit alors plus de fichiers de configuration que de
bibliothèques. Ou que l'on ne dispose pas des droits nécessaires
(au sens droits Unix ou contrat d'utilisation de la machine).
Pourquoi déconseilles-tu l'utilisation de 'site-lisp' ici ?
[...]
En plus de ceux-là, il peut être intéressant de se créer un
répertoire personnel, par exemple '~/.emacs.d/home-lisp', qu'il
est simple de gérer en commençant son '~/.emacs.el' par :
;; La « variabilisation » et la « listification » du
;; 'home-lisp' sont laissées en exercice (utilisation d'une
;; variable pour renseigner le répertoire, et permettre
;; d'avoir une liste de répertoire, pour s'approcher d'un
;; 'load-path' personnel).
;;
(let ((default-directory "~/.emacs.d/home-lisp"))
(load-file "subdirs.el"))
le fichier '~/.emacs.d/home-lisp/subdirs.el' contenant, tout
comme les 'subdirs.el' des répertoires standards :
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
(normal-top-level-add-subdirs-to-load-path))
L'utilisation de cette fonction permet de gérer ce répertoire
personnel comme les répertoires standards en regard du
'load-path' (utilisation d'un fichier '.nosearch', par exemple,
ou ajout simple d'un répertoire, sans devoir modifier son
'~/.emacs.el').
L'étape suivante étant de garder cette architecture
décentralisée, et d'y ajouter le support automatique des fichiers
'loaddefs.el', qui sont gérés de manière spéciale pour le
répertoire '.../emacs/22.0.50/lisp', au moyen d'un petit ensemble
de routines additionnelles. C'est d'ailleurs selon moins des
routines qui font défaut dans la distribution standard.
> Ensuite pour te servir du mode python, tu peux tester
> interactivement par un M-x load-library python.el (à remplacer par
> le bon nom).
Si je ne me trompe pas, cela va dans tous les cas charger la
version source de la bibliothèque, plutôt que la version
byte-compilée. Je dirais plutôt : 'M-x load-library python' (à
remarquer que charger explicitement une bibliothèque terminant
par '.el' est justement intéressant pour obtenir un backtrace
plus clair, puisqu'Emacs charge alors le source et non le
byte-code).
> Si c'est concluant, tu peux ajouter un (require 'python-mode) dans
> ton fichier ~/.emacs (à créer s'il n'existe pas) pour que ça soit
> automatiquement chargé et activé à la prochaine utilisation d'Emacs.
Je déconseillerais cela. Ça voudrait dire que la bibliothèque
serait chargée à chaque lancement normal d'Emacs. On en arrive
vite à un chargement très lent, ce temps étant gaspillé à charger
des bibliothèques dont on ne se servira pas dans cette session,
ou qui de toute façon serait chargées les unes après les autres
lors de leur première utilisation (ce qui se fait beaucoup moins
sentir).
En général, pour installer un mode d'édition, il suffit de
renseigner quelques valeurs à Emacs. Si la bibliothèque est bien
faite, cela est fait dans le code source au moyen de cookies
d'autoload, et il suffit de générer le 'loaddefs.el' associé,
et de s'assurer de l'évaluer au chargement d'Emacs. Sinon, il suffit
en général de s'assurer que tout est ok en regard du 'load-path', et
d'ajouter ce qu'il faut à 'auto-mode-alist', 'interpreter-mode-alist'
et 'magic-mode-alist', et de renseigner l'autoload qui va bien
(éventuellement les autoloads, selon les points d'entrée principaux,
par exemple si le mode pour Python inclus une interface vers
l'interpréteur).
Donc, si la bibliothèque est bien faite, on génère le
'loaddefs.el' qui est chargé automatiquement par son
'subdirs.el', sinon on le crée à la main ou on ajoute
l'équivalent à son '~/.emacs.el' :
(autoload 'python-mode "python-mode"
"Major mode for editing Python files." t)
(push '(".py$" . python-mode) auto-mode-alist)
(push '("python" . python-mode) interpreter-mode-alist)
Je pense qu'il s'agit des grands points de l'installation d'une
bibliothèque. Je ne sais pas si j'ai oublié quelque chose
d'important ni si j'ai dit des bêtises. Cela est valable pour
GNU Emacs, je sais que XEmacs possède un système de gestion de
packages que je ne connais pas (et dont je n'ai pas entendu que
du bien). Enfin, le code ci-dessus n'est pas testé : à vos
risques et périls.
Pour terminer, je sais que Matthieu a écrit une page sur le
sujet : <URL:http://www-verimag.imag.fr/~moy/emacs/>. Je n'ai
pas pris le temps de la lire en détail, mais il propose une
automatisation de la procédure. Cela peut intéresser Simon. Au
fait, si tu as des remarques sur ce que je viens de dire,
Matthieu, n'hésite pas.
--drkm
Mais pour les .elc, même pas: soit d'un version d'emacs à l'autre ils
sont compatible, soit on recompile quand on installe une nouvelle
version d'emacs. Si on devait travailler avec plusieurs versions
d'emacs en même temps, peut être. Mais en général, quand une nouvelle
version d'emacs apparait, elle est tellement mieux, que je m'empresse
de l'installer sur tous mes ordinateurs.
Mais pour les .elc, même pas: soit d'un version d'emacs à l'autre ils
sont compatible, soit on recompile quand on installe une nouvelle
version d'emacs. Si on devait travailler avec plusieurs versions
d'emacs en même temps, peut être. Mais en général, quand une nouvelle
version d'emacs apparait, elle est tellement mieux, que je m'empresse
de l'installer sur tous mes ordinateurs.
Mais pour les .elc, même pas: soit d'un version d'emacs à l'autre ils
sont compatible, soit on recompile quand on installe une nouvelle
version d'emacs. Si on devait travailler avec plusieurs versions
d'emacs en même temps, peut être. Mais en général, quand une nouvelle
version d'emacs apparait, elle est tellement mieux, que je m'empresse
de l'installer sur tous mes ordinateurs.
Le 23 septembre 2005 à 19:09, drkm s'est exprimé ainsi :L'étape suivante étant de garder cette architecture
décentralisée, et d'y ajouter le support automatique des fichiers
'loaddefs.el', qui sont gérés de manière spéciale pour le
répertoire '.../emacs/22.0.50/lisp', au moyen d'un petit ensemble
de routines additionnelles. C'est d'ailleurs selon moins des
routines qui font défaut dans la distribution standard.
Ça c'est une technique que je ne connais pas et que je devrais étudier
plus en détail.
Pour le moment, je me contente de la méthode subdirs.el.
En général, pour installer un mode d'édition, il suffit de
renseigner quelques valeurs à Emacs. Si la bibliothèque est bien
faite, cela est fait dans le code source au moyen de cookies
d'autoload, et il suffit de générer le 'loaddefs.el' associé,
Justement, comment tu procèdes pour cette génération ?
Le 23 septembre 2005 à 19:09, drkm s'est exprimé ainsi :
L'étape suivante étant de garder cette architecture
décentralisée, et d'y ajouter le support automatique des fichiers
'loaddefs.el', qui sont gérés de manière spéciale pour le
répertoire '.../emacs/22.0.50/lisp', au moyen d'un petit ensemble
de routines additionnelles. C'est d'ailleurs selon moins des
routines qui font défaut dans la distribution standard.
Ça c'est une technique que je ne connais pas et que je devrais étudier
plus en détail.
Pour le moment, je me contente de la méthode subdirs.el.
En général, pour installer un mode d'édition, il suffit de
renseigner quelques valeurs à Emacs. Si la bibliothèque est bien
faite, cela est fait dans le code source au moyen de cookies
d'autoload, et il suffit de générer le 'loaddefs.el' associé,
Justement, comment tu procèdes pour cette génération ?
Le 23 septembre 2005 à 19:09, drkm s'est exprimé ainsi :L'étape suivante étant de garder cette architecture
décentralisée, et d'y ajouter le support automatique des fichiers
'loaddefs.el', qui sont gérés de manière spéciale pour le
répertoire '.../emacs/22.0.50/lisp', au moyen d'un petit ensemble
de routines additionnelles. C'est d'ailleurs selon moins des
routines qui font défaut dans la distribution standard.
Ça c'est une technique que je ne connais pas et que je devrais étudier
plus en détail.
Pour le moment, je me contente de la méthode subdirs.el.
En général, pour installer un mode d'édition, il suffit de
renseigner quelques valeurs à Emacs. Si la bibliothèque est bien
faite, cela est fait dans le code source au moyen de cookies
d'autoload, et il suffit de générer le 'loaddefs.el' associé,
Justement, comment tu procèdes pour cette génération ?