2017-10-19 4 views
1

En effet, je ne parle pas couramment avec Elisp. Anyway: J'utilise le même fichier de configuration Emacs, mais comme d'habitude, il y a de petites différences quand je suis à la maison ou au bureau, je ne sais pas s'il est possible de définir mon répertoire de travail avec un code comme:Définition d'un répertoire en utilisant "nom-système" sur Elisp

(setq my-dir (if (string= system-name "hp-pavilion23") 
       (progn (message "/home/manuel/entwicklung/lisp/")) 
       (progn (message "/home/mmontoya/projects/chipotle/")))) 

(setq default-directory my-dir) 
+1

1. Les 'progn' ici ne font rien. 2. 'message' renvoie' nil' (et l'empaquette avec 'progn'). 3. Ainsi, le premier 'setq' définit la variable' my-dir' à 'nil'. 4. Le second 'setq' définit alors' default-directory' à 'nil'. Qu'est-ce que vous essayez d'accomplir? – Drew

+1

Laissez-moi deviner. Vous voulez que 'default-directory' soit' ~/manuel/entwicklung/lisp' ou '~/mmontoya/projects/chipotle' en fonction de votre' system-name'? –

Répondre

4

Je ne sais pas s'il est possible de définir mon répertoire de travail ...

Oui, vous pouvez. Vous avez juste besoin d'aller d'une manière simple, car Lisp est conçu pour être simple.

(if (string= system-name "hp-pavilion23") 
    (setq my-dir "/home/manuel/entwicklung/lisp/") 
    (setq my-dir "/home/mmontoya/projects/chipotle/")) 

(setq default-directory my-dir) 

Cependant, pourquoi même s'embêter avec ce supplément my-dir? Réglez simplement default-directory où vous voulez.

;; Somewhere in your ~/.emacs 
(if (string= system-name "hp-pavilion23") 
    ;; Set default-directory here. 
    (setq default-directory "/home/manuel/entwicklung/lisp/") 
    (setq default-directory "/home/mmontoya/projects/chipotle/")) 

Notez que default-directory est une variable fournie automatiquement à partir Emacs. Assurez-vous donc que le changement ne nuise à aucun autre comportement.

+3

Et bien sûr, vous pouvez réduire cela à '(setq default-directory (si la condition" foo "" bar "))' si vous préférez. – phils

+0

Notez que 'default-directory' est buffer-local. Vous souhaitez probablement uniquement définir la valeur locale, mais si vous souhaitez définir la valeur par défaut, utilisez 'setq-default'. – jpkotta