2010-03-29 12 views

Antwort

12

Sie können dies tun:

`C-u M-x eshell` 

Das schafft *eshell*, *eshell*<2>, und so weiter.

4

Der Docstring für eshell besagt, dass "ein nicht numerisches Präfix arg bedeutet, eine neue Sitzung zu erstellen." Ich tippte M-- M-x eshell immer wieder und jedes Mal öffnete es einen neuen eshell Puffer.

+1

C-u M-x Eshell auch funktioniert. – ataylor

+0

Verdammt. Dein Kommentar wurde nicht geschrieben, als ich meine Antwort begann :) –

6

Meine bevorzugte Ansatz ist benannt Schalen zu erstellen:

(defun make-shell (name) 
    "Create a shell buffer named NAME." 
    (interactive "sName: ") 
    (setq name (concat "$" name)) 
    (eshell) 
    (rename-buffer name)) 

das Wesentliche ist. Dann wird M-x make-shell name die gewünschte Shell erstellen.

0

Aufrufen GNU Screen ist eine weitere Option für diejenigen mit ansi Zeit

1

Cu Mx Eshell funktioniert gut, aber ich ziehe genannt shells - make-shell Ansatz nützlich ist, wenn Puffer

0

Mybe Schalt, wird die folgende Lösung besser. Weil der Eshell-Puffer durch den Wert von eshell-buffer-name bestimmt wird. Sie müssen den Puffer nicht umbenennen.

(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

Aufbauend auf make-eshell, schafft dies eine Eshell den nächsten Zähler angehängt, so ist es wie eshell1, eshell2, etc .:

(lexical-let ((count 1)) 
    (defun make-eshell-next-number() 
    (interactive) 
    (eshell) 
    (rename-buffer (concat "*eshell" (number-to-string count) "*")) 
    (setq count (1+ count))))