Denken Sie: Tiling meine Emacs-Fenster mit Muscheln, a la Xmonad. Ist das möglich? Ich kann M-x eshell die erste eshell-Instanz öffnen, aber zukünftige Aufrufe konzentrieren nur die erste Instanz.Erstellen Sie mehr als eine eshell-Instanz in Emacs
Antwort
Sie können dies tun:
`C-u M-x eshell`
Das schafft *eshell*
, *eshell*<2>
, und so weiter.
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.
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.
Aufrufen GNU Screen ist eine weitere Option für diejenigen mit ansi Zeit
Cu Mx Eshell funktioniert gut, aber ich ziehe genannt shells - make-shell Ansatz nützlich ist, wenn Puffer
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))
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))))
C-u M-x Eshell auch funktioniert. – ataylor
Verdammt. Dein Kommentar wurde nicht geschrieben, als ich meine Antwort begann :) –