Je veux avoir un make-shells
dans emacs qui ouvrira un certain nombre de tampons emacs-shell, chacun avec son propre répertoire de travail. L'idée est que pour chaque projet sur lequel je travaille, j'ai un shell qui démarre dans le répertoire de ce projet, de sorte que je peux facilement passer de l'un à l'autre.
Actuellement, j'ai ce code :
(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))
C'est assez laid, cependant, et la moitié du temps (dirs)
ne détecte pas le chemin correct, et la complétion de la tabulation est interrompue jusqu'à ce que je l'exécute à nouveau manuellement. Existe-t-il un moyen intégré de définir le répertoire de travail actuel du shell emacs ? Ou quelque chose comme CEDET (ainsi qu'une moindre dépendance à l'égard du mode shell par rapport au mode emacs) serait une bien meilleure solution ?