Je cherche à savoir si le fichier de configuration de GNU Emacs
doit forcément se trouver à la racine du répertoire de connexion
de l'utilisateur ou bien, si on peut indiquer le répertoire où le
trouver en placant une variable d'environnement bien senti.
Pour tout dire, je cherche à nettoyer un peu mon répertoire
maison de tout le fatras habituel en adoptant une organisation
plus propre -i.e je me suis créé un répertoire ~/sys dans lequel
je retrouve mon /etc, mon /usr perso.
J'ai cherché à répondre à cette question mais n'ai pas vraiment
trouvé grand chose sur le sujet.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
drkm
Xavier Maillard writes:
Je cherche à savoir si le fichier de configuration de GNU Emacs doit forcément se trouver à la racine du répertoire de connexion de l'utilisateur ou bien, si on peut indiquer le répertoire où le trouver en placant une variable d'environnement bien senti.
Une variable d'environnement, je ne sais pas. Il faudrait regarder le code source C, que je n'ai pas sous la main. Mais il y a 'user-init-file' aui fait ce que tu veux, je pense.
S'il n'y a pas moyen d'utiliser une variable d'environnement, il te faut utiliser un fichier le précédent dans le macanisme de chargement (info: (elisp)Startup Summary).
Mais il n'y a là que des fichiers « site-wide », si je me souviens bien, ce qui n'est pas le mieux, évidemment. Sinon, peut-être avec un script perso wrappant l'appel à Emacs, et fixant cette variable sur la ligne de commande, pourquoi pas.
Non testé.
--drkm
Xavier Maillard <zedek@gnu-rox.org> writes:
Je cherche à savoir si le fichier de configuration de GNU Emacs
doit forcément se trouver à la racine du répertoire de connexion
de l'utilisateur ou bien, si on peut indiquer le répertoire où le
trouver en placant une variable d'environnement bien senti.
Une variable d'environnement, je ne sais pas. Il faudrait
regarder le code source C, que je n'ai pas sous la main. Mais il
y a 'user-init-file' aui fait ce que tu veux, je pense.
S'il n'y a pas moyen d'utiliser une variable d'environnement,
il te faut utiliser un fichier le précédent dans le macanisme de
chargement (info: (elisp)Startup Summary).
Mais il n'y a là que des fichiers « site-wide », si je me
souviens bien, ce qui n'est pas le mieux, évidemment. Sinon,
peut-être avec un script perso wrappant l'appel à Emacs, et
fixant cette variable sur la ligne de commande, pourquoi pas.
Je cherche à savoir si le fichier de configuration de GNU Emacs doit forcément se trouver à la racine du répertoire de connexion de l'utilisateur ou bien, si on peut indiquer le répertoire où le trouver en placant une variable d'environnement bien senti.
Une variable d'environnement, je ne sais pas. Il faudrait regarder le code source C, que je n'ai pas sous la main. Mais il y a 'user-init-file' aui fait ce que tu veux, je pense.
S'il n'y a pas moyen d'utiliser une variable d'environnement, il te faut utiliser un fichier le précédent dans le macanisme de chargement (info: (elisp)Startup Summary).
Mais il n'y a là que des fichiers « site-wide », si je me souviens bien, ce qui n'est pas le mieux, évidemment. Sinon, peut-être avec un script perso wrappant l'appel à Emacs, et fixant cette variable sur la ligne de commande, pourquoi pas.
Non testé.
--drkm
Michael Cadilhac
drkm writes:
Xavier Maillard writes:
Je cherche à savoir si le fichier de configuration de GNU Emacs doit forcément se trouver à la racine du répertoire de connexion de l'utilisateur ou bien, si on peut indiquer le répertoire où le trouver en placant une variable d'environnement bien senti.
Une variable d'environnement, je ne sais pas. Il faudrait regarder le code source C, que je n'ai pas sous la main. Mais il y a 'user-init-file' aui fait ce que tu veux, je pense.
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans la fonction `command-line'.
On voit qu'il n'y a pas de getenv pour ce genre de chose.
Par contre,
;; If we did not find ~/.emacs, try ;; ~/.emacs.d/.emacs. (let ((otherfile (expand-file-name (file-name-nondirectory user-init-file-1) (file-name-as-directory (expand-file-name ".emacs.d" (file-name-directory user-init-file-1)))))) (load otherfile t t)
Si ça peut t'aider à cleaner ton ~ :-)
-- Michael Cadilhac, a.k.a. Micha [mika] | Epita/LRDE promo 2007 | Please note that you should 2 rue de la Convention | 01.46.70.90.75 | s//@/ my mail address. 94270 Le Kremlin Bicetre | 06.23.20.31.30 |
drkm <usenet.fcaemacs@fgeorges.org> writes:
Xavier Maillard <zedek@gnu-rox.org> writes:
Je cherche à savoir si le fichier de configuration de GNU Emacs
doit forcément se trouver à la racine du répertoire de connexion
de l'utilisateur ou bien, si on peut indiquer le répertoire où le
trouver en placant une variable d'environnement bien senti.
Une variable d'environnement, je ne sais pas. Il faudrait
regarder le code source C, que je n'ai pas sous la main. Mais il
y a 'user-init-file' aui fait ce que tu veux, je pense.
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans
la fonction `command-line'.
On voit qu'il n'y a pas de getenv pour ce genre de chose.
Par contre,
;; If we did not find ~/.emacs, try
;; ~/.emacs.d/.emacs.
(let ((otherfile
(expand-file-name
(file-name-nondirectory user-init-file-1)
(file-name-as-directory
(expand-file-name
".emacs.d"
(file-name-directory user-init-file-1))))))
(load otherfile t t)
Si ça peut t'aider à cleaner ton ~ :-)
--
Michael Cadilhac, a.k.a. Micha [mika] |
Epita/LRDE promo 2007 | Please note that you should
2 rue de la Convention | 01.46.70.90.75 | s/-@t-/@/ my mail address.
94270 Le Kremlin Bicetre | 06.23.20.31.30 |
Je cherche à savoir si le fichier de configuration de GNU Emacs doit forcément se trouver à la racine du répertoire de connexion de l'utilisateur ou bien, si on peut indiquer le répertoire où le trouver en placant une variable d'environnement bien senti.
Une variable d'environnement, je ne sais pas. Il faudrait regarder le code source C, que je n'ai pas sous la main. Mais il y a 'user-init-file' aui fait ce que tu veux, je pense.
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans la fonction `command-line'.
On voit qu'il n'y a pas de getenv pour ce genre de chose.
Par contre,
;; If we did not find ~/.emacs, try ;; ~/.emacs.d/.emacs. (let ((otherfile (expand-file-name (file-name-nondirectory user-init-file-1) (file-name-as-directory (expand-file-name ".emacs.d" (file-name-directory user-init-file-1)))))) (load otherfile t t)
Si ça peut t'aider à cleaner ton ~ :-)
-- Michael Cadilhac, a.k.a. Micha [mika] | Epita/LRDE promo 2007 | Please note that you should 2 rue de la Convention | 01.46.70.90.75 | s//@/ my mail address. 94270 Le Kremlin Bicetre | 06.23.20.31.30 |
drkm
Michael Cadilhac writes:
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans la fonction `command-line'.
C'est ce que j'avais d'abord vu, puis un C-h v m'a répondu :
,----[ C-h v user-init-file RET ] | Defined in `C source code'. `----
;; If we did not find ~/.emacs, try ;; ~/.emacs.d/.emacs.
Tiens, ça m'avait échappé. Très intéressant. Merci.
--drkm
Michael Cadilhac writes:
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans
la fonction `command-line'.
C'est ce que j'avais d'abord vu, puis un C-h v m'a répondu :
,----[ C-h v user-init-file RET ]
| Defined in `C source code'.
`----
;; If we did not find ~/.emacs, try
;; ~/.emacs.d/.emacs.
Tiens, ça m'avait échappé. Très intéressant. Merci.
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans la fonction `command-line'.
C'est ce que j'avais d'abord vu, puis un C-h v m'a répondu :
,----[ C-h v user-init-file RET ] | Defined in `C source code'. `----
;; If we did not find ~/.emacs, try ;; ~/.emacs.d/.emacs.
Tiens, ça m'avait échappé. Très intéressant. Merci.
--drkm
Michael Cadilhac
drkm writes:
Michael Cadilhac writes:
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans la fonction `command-line'.
C'est ce que j'avais d'abord vu, puis un C-h v m'a répondu :
,----[ C-h v user-init-file RET ] | Defined in `C source code'. `----
Oui, et à voir les sources...
---------------------------------------------------------------------- lread.c:/* File name of user's init file. */ lread.c:Lisp_Object Vuser_init_file; [...] lread.c: DEFVAR_LISP ("user-init-file", &Vuser_init_file, lread.c: doc: /* File name, including directory, of user's initialization file. lread.c:If the file loaded had extension `.elc', and the corresponding source file lread.c:exists, this variable contains the name of source file, suitable for use lread.c:by functions like `custom-save-all' which edit the init file. */); lread.c: Vuser_init_file = Qnil; ----------------------------------------------------------------------
et encore plus de sources...
---------------------------------------------------------------------- startup.el: ;; This tells `load' to store the file name found startup.el: ;; into user-init-file. startup.el: (setq user-init-file t) startup.el: (load user-init-file-1 t t) ----------------------------------------------------------------------
And even mooore...
---------------------------------------------------------------------- lread.c:DEFUN ("load", Fload, Sload, 1, 5, 0, [...] lread.c: /* Tell startup.el whether or not we found the user's init file. */ lread.c: if (EQ (Qt, Vuser_init_file)) lread.c: Vuser_init_file = found; ----------------------------------------------------------------------
on peut conclure que user-init-file est setté par `startup.el' une fois qu'il a trouvé quel était l'init-file (~/.emacs, ~/.emacs.d/.emacs, ...), et ce par l'intermédiaire de (load).
J'aime beaucoup la manière dont s'est fait mine de rien :-) C'est moi, ou c'est vraiment moche ? ;-)
-- Michael Cadilhac, a.k.a. Micha [mika] | Epita/LRDE promo 2007 | Please note that you should 2 rue de la Convention | 01.46.70.90.75 | s//@/ my mail address. 94270 Le Kremlin Bicetre | 06.23.20.31.30 |
drkm <usenet.fcaemacs@fgeorges.org> writes:
Michael Cadilhac writes:
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans
la fonction `command-line'.
C'est ce que j'avais d'abord vu, puis un C-h v m'a répondu :
,----[ C-h v user-init-file RET ]
| Defined in `C source code'.
`----
Oui, et à voir les sources...
----------------------------------------------------------------------
lread.c:/* File name of user's init file. */
lread.c:Lisp_Object Vuser_init_file;
[...]
lread.c: DEFVAR_LISP ("user-init-file", &Vuser_init_file,
lread.c: doc: /* File name, including directory, of user's initialization file.
lread.c:If the file loaded had extension `.elc', and the corresponding source file
lread.c:exists, this variable contains the name of source file, suitable for use
lread.c:by functions like `custom-save-all' which edit the init file. */);
lread.c: Vuser_init_file = Qnil;
----------------------------------------------------------------------
et encore plus de sources...
----------------------------------------------------------------------
startup.el: ;; This tells `load' to store the file name found
startup.el: ;; into user-init-file.
startup.el: (setq user-init-file t)
startup.el: (load user-init-file-1 t t)
----------------------------------------------------------------------
And even mooore...
----------------------------------------------------------------------
lread.c:DEFUN ("load", Fload, Sload, 1, 5, 0,
[...]
lread.c: /* Tell startup.el whether or not we found the user's init file. */
lread.c: if (EQ (Qt, Vuser_init_file))
lread.c: Vuser_init_file = found;
----------------------------------------------------------------------
on peut conclure que user-init-file est setté par `startup.el' une
fois qu'il a trouvé quel était l'init-file (~/.emacs,
~/.emacs.d/.emacs, ...), et ce par l'intermédiaire de (load).
J'aime beaucoup la manière dont s'est fait mine de rien :-) C'est
moi, ou c'est vraiment moche ? ;-)
--
Michael Cadilhac, a.k.a. Micha [mika] |
Epita/LRDE promo 2007 | Please note that you should
2 rue de la Convention | 01.46.70.90.75 | s/-@t-/@/ my mail address.
94270 Le Kremlin Bicetre | 06.23.20.31.30 |
Ça ne se trouve pas dans le code C ceci, mais dans startup.el, dans la fonction `command-line'.
C'est ce que j'avais d'abord vu, puis un C-h v m'a répondu :
,----[ C-h v user-init-file RET ] | Defined in `C source code'. `----
Oui, et à voir les sources...
---------------------------------------------------------------------- lread.c:/* File name of user's init file. */ lread.c:Lisp_Object Vuser_init_file; [...] lread.c: DEFVAR_LISP ("user-init-file", &Vuser_init_file, lread.c: doc: /* File name, including directory, of user's initialization file. lread.c:If the file loaded had extension `.elc', and the corresponding source file lread.c:exists, this variable contains the name of source file, suitable for use lread.c:by functions like `custom-save-all' which edit the init file. */); lread.c: Vuser_init_file = Qnil; ----------------------------------------------------------------------
et encore plus de sources...
---------------------------------------------------------------------- startup.el: ;; This tells `load' to store the file name found startup.el: ;; into user-init-file. startup.el: (setq user-init-file t) startup.el: (load user-init-file-1 t t) ----------------------------------------------------------------------
And even mooore...
---------------------------------------------------------------------- lread.c:DEFUN ("load", Fload, Sload, 1, 5, 0, [...] lread.c: /* Tell startup.el whether or not we found the user's init file. */ lread.c: if (EQ (Qt, Vuser_init_file)) lread.c: Vuser_init_file = found; ----------------------------------------------------------------------
on peut conclure que user-init-file est setté par `startup.el' une fois qu'il a trouvé quel était l'init-file (~/.emacs, ~/.emacs.d/.emacs, ...), et ce par l'intermédiaire de (load).
J'aime beaucoup la manière dont s'est fait mine de rien :-) C'est moi, ou c'est vraiment moche ? ;-)
-- Michael Cadilhac, a.k.a. Micha [mika] | Epita/LRDE promo 2007 | Please note that you should 2 rue de la Convention | 01.46.70.90.75 | s//@/ my mail address. 94270 Le Kremlin Bicetre | 06.23.20.31.30 |