Tôi muốn có một lệnh make-shells
trong các emacs sẽ mở một số bộ đệm emacs-shell, mỗi bộ đệm có thư mục làm việc riêng của nó. Ý tưởng là đối với mỗi dự án tôi đang làm việc, tôi có một trình bao bắt đầu trong thư mục của dự án đó, vì vậy tôi có thể dễ dàng chuyển đổi giữa chúng.Mở vỏ trong các emacs với một thư mục làm việc đã cho
Hiện nay tôi có mã này:
(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))
này là khá xấu xí, mặc dù, và một nửa thời gian (dirs)
không nhặt con đường đúng, vì vậy phá vỡ hoàn tab cho đến khi tôi chạy lại nó bằng tay. Có cách tích hợp để thiết lập thư mục làm việc hiện tại của vỏ emacs không? Hoặc một cái gì đó như CEDET (cộng với ít phụ thuộc vào chế độ shell so với emacs) là một giải pháp tốt hơn cho điều này?
Hoạt động như một sự quyến rũ! – dfri