我希望在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