2010-03-29 25 views
5

सोचें: एशेल, ला ला एक्सोनैड के साथ मेरी इमेक्स विंडो को टाइल करना। क्या यह संभव है? मैं पहले एशेल इंस्टेंस को खोलने के लिए एम-एक्स एशेल कर सकता हूं लेकिन भविष्य के इनवॉशंस केवल पहले उदाहरण पर ध्यान केंद्रित करते हैं।emacs में एक से अधिक एशेल उदाहरण बनाएं

उत्तर

12

आप ऐसा कर सकते हैं:

`C-u M-x eshell` 

यह *eshell*, *eshell*<2>, और इतने पर पैदा करेगा।

4

एशेल के लिए डॉकस्ट्रिंग कहता है कि "एक गैर-संख्यात्मक उपसर्ग तर्क का अर्थ है नया सत्र बनाना।" मैंने टाइप किया एम - एम-एक्स eshell ओवर और ओवर, और प्रत्येक बार जब यह एक नया एशेल बफर खोला।

+1

सी-यू एम एक्स eshell भी काम करता है। – ataylor

+0

अरे। जब मैंने अपना जवाब शुरू किया तो आपकी टिप्पणी लिखी नहीं गई थी :) –

6

मेरे पसंदीदा दृष्टिकोण नामित गोले बनाने के लिए है:

(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 वांछित खोल बना देगा।

0

जीएनयू स्क्रीन लागू एएनएसआई अवधि

1

Cu एमएक्स eshell अच्छा काम करता है का उपयोग करने वालों के लिए एक और विकल्प है, लेकिन मैं नामित गोले पसंद करते हैं - make-shell दृष्टिकोण, उपयोगी जब बफ़र्स

स्विचिंग
0

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)) 
0

पर make-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))))