Hãy suy nghĩ: ốp lát cửa sổ emac của tôi với eshells, một la xmonad. Điều này có thể không? Tôi có thể M-x eshell để mở thể hiện eshell đầu tiên nhưng các lời gọi trong tương lai chỉ tập trung vào cá thể đầu tiên.Tạo nhiều hơn một trường hợp eshell trong emacs
Trả lời
Bạn có thể làm điều này:
`C-u M-x eshell`
này sẽ tạo *eshell*
, *eshell*<2>
, và vân vân.
Chuỗi tài liệu cho eshell nói rằng "Tiền tố phi số arg nghĩa là tạo phiên mới". Tôi đã nhập M-- M-x eshell lặp đi lặp lại và mỗi lần mở bộ đệm eshell mới.
phương pháp ưa thích của tôi là tạo ra tên vỏ:
(defun make-shell (name)
"Create a shell buffer named NAME."
(interactive "sName: ")
(setq name (concat "$" name))
(eshell)
(rename-buffer name))
là các ý chính. Sau đó M-x make-shell name
sẽ tạo vỏ mong muốn.
Gọi GNU Screen là một lựa chọn cho những người sử dụng ansi hạn
Củ Mx eshell hoạt động tuyệt vời, nhưng tôi thích tên vỏ - make-shell cách tiếp cận, rất hữu ích khi chuyển sang bộ đệm
mybe, giải pháp sau đây là tốt hơn. Vì bộ đệm eshell được xác định bởi giá trị của tên đệm eshell. Bạn không cần phải đổi tên bộ đệm.
(defun buffer-exists (bufname)
(not (eq nil (get-buffer bufname))))
(defun make-shell (name)
"Create a shell buffer named NAME."
(interactive "sName: ")
(if (buffer-exists "*eshell*")
(setq eshell-buffer-name name)
(message "eshell doesnot exists, use the default name: *eshell*"))
(eshell))
Mở rộng trên make-eshell, điều này tạo ra một eshell phụ thêm quầy tiếp theo, vì vậy nó giống như eshell1, eshell2, v.v .:
(lexical-let ((count 1))
(defun make-eshell-next-number()
(interactive)
(eshell)
(rename-buffer (concat "*eshell" (number-to-string count) "*"))
(setq count (1+ count))))
C-u M-x eshell làm việc quá. – ataylor
Chết tiệt. Nhận xét của bạn chưa được viết khi tôi bắt đầu câu trả lời của tôi :) –