قم بإنشاء أكثر من مثيل Eshell في Emacs
سؤال
فكر: تبليط نافذة emacs الخاصة بي مع Eshells ، La Xmonad. هل هذا ممكن؟ يمكنني MX Eshell فتح مثيل Eshell الأول ولكن الدعوات المستقبلية تركز فقط على الحالة الأولى.
المحلول
يمكنك ان تفعلها:
`C-u M-x eshell`
هذا سوف يخلق *eshell*
, *eshell*<2>
, ، وهلم جرا.
نصائح أخرى
النهج المفضل لدي هو إنشاء قذائف مسماة:
(defun make-shell (name)
"Create a shell buffer named NAME."
(interactive "sName: ")
(setq name (concat "$" name))
(eshell)
(rename-buffer name))
هو جوهر. ثم M-x make-shell name
سيخلق القشرة المطلوبة.
ينص Docstring لـ Eshell على أن "البادئة غير الرقمية ARG تعني إنشاء جلسة جديدة." كتبت م- MX Eshell مرارا وتكرارا ، وفي كل مرة فتحت عازلة eshell جديدة.
يعمل Cu MX Eshell بشكل رائع ، لكني أفضل اسمه - صنع قشرة النهج ، مفيد عند تبديل المخازن المؤقتة
يعد استدعاء شاشة GNU خيارًا آخر لأولئك الذين يستخدمون ANSI
mybe ، الحل التالي أفضل. لأن المخزن المؤقت Eshell يتم تحديده من خلال قيمة اسم Eshell-Buffer-Name. لا تحتاج إلى إعادة تسمية المخزن المؤقت.
(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))
التوسع على صنع, ، هذا يخلق eshell إلحاق العداد التالي ، لذلك هو مثل Eshell1, Eshell2, ، إلخ.:
(lexical-let ((count 1))
(defun make-eshell-next-number ()
(interactive)
(eshell)
(rename-buffer (concat "*eshell" (number-to-string count) "*"))
(setq count (1+ count))))