Desidero avere un comando make-shells
in emacs che aprirà un certo numero di buffer della shell emacs, ognuno con la propria directory di lavoro. L'idea è che per ogni progetto su cui sto lavorando, ho una shell che inizia nella directory di quel progetto, così posso passare facilmente da una all'altra.Open shell in emacs con una determinata directory di lavoro
Attualmente ho questo codice:
(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))
Questo è abbastanza brutto, però, e la metà del tempo (dirs)
non raccoglie il percorso corretto, quindi le pause di completamento scheda fino a quando ho ri-eseguirlo manualmente. Esiste un modo integrato per impostare la directory di lavoro corrente della shell di emacs? O sarebbe qualcosa di simile a CEDET (oltre a fare meno affidamento sulla shell rispetto alle modalità emacs) essere una soluzione molto migliore per questo?
Funziona come un fascino! – dfri