2017-10-19 90 views
1

設置使用「系統名稱」目錄的確,我的elisp打交道時我不流利。總之:我用的是相同的Emacs的配置文件,但像往常一樣,也有小的差異,當我在家裏或在辦公室的時候,我不知道是否可以定義與這樣的代碼,我的工作目錄:上的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.'progn's這裏什麼都不做。 2.'message'返回'nil'(並且用'progn'包裝它)。所以第一個'setq'將變量'my-dir'設置爲'nil'。 4.第二個'setq'然後將'default-directory'設置爲'nil'。你試圖完成什麼? – Drew

+1

讓我猜。你想'默認directory'到是'〜/曼努埃爾/發展協會/ lisp'或'〜/ mmontoya /項目/取決於你'系統name' chipotle'? –

回答

4

我不知道是否有可能定義我的工作目錄...

是的,可以。你只需要一個簡單的路要走,因爲Lisp的被設計成簡單

(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) 

但是,爲什麼還要打擾那額外的my-dir?只需在您想要的地方設置default-directory即可。

;; 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/")) 

請注意,default-directory是Emacs自動提供的一個變量。所以請確保更改不會損害任何其他行爲。

+3

當然,您也可以進一步降低到'(setq默認目錄(如果條件「富」,「酒吧」))'如果你喜歡。 – phils

+0

請注意,'default-directory'是緩衝區本地的。您可能只想設置本地值,但如果您想設置默認值,請使用'setq-default'。 – jpkotta