我希望在emacs中有一個make-shells
命令,它將打開許多emacs-shell緩衝區,每個緩衝區都有自己的工作目錄。我的想法是,對於我正在開發的每個項目,我都有一個從該項目目錄開始的shell,因此我可以輕鬆地在它們之間切換。使用給定的工作目錄在emacs中打開shell
目前我有這樣的代碼:
(defun shell-dir (name dir)
(interactive "sShell name: \nDDirectory: ")
(shell name)
(switch-to-buffer name)
(comint-send-string (current-buffer) (concat "cd " dir "\r"))
(sleep-for 0 10)
(dirs))
(defun make-shells()
(interactive)
(shell-dir "project1" "~/proj/project1")
(shell-dir "project2" "~/proj/project2")
(shell-dir "project3" "~/proj/project3")
(delete-window))
這是很醜陋,不過,有一半的時間(dirs)
不拿起正確的路徑,所以標籤完成休息,直到我手動重新運行它。有沒有內置的方法來設置emacs shell的當前工作目錄?或者像CEDET(加上對shell和emacs模式的依賴較少)是一個更好的解決方案嗎?
工程就像一個魅力! – dfri 2017-01-16 16:08:29