Crear más de una instancia eshell en emacs
Pregunta
Think: baldosas de mi ventana emacs con eshells, al estilo de xmonad. es posible? Puedo M-x eshell para abrir la primera instancia eshell pero a futuras ejecuciones sólo se centran primera instancia.
Solución
Usted puede hacer esto:
`C-u M-x eshell`
Esto creará *eshell*
, *eshell*<2>
, y así sucesivamente.
Otros consejos
Mi método preferido es la creación de conchas con nombre:
(defun make-shell (name)
"Create a shell buffer named NAME."
(interactive "sName: ")
(setq name (concat "$" name))
(eshell)
(rename-buffer name))
es la esencia. Entonces M-x make-shell name
creará la cáscara deseado.
El docstring para ESHELL establece que "Un medio de prefijo arg no numéricos para crear una nueva sesión." He escrito M-- M-x eshell una y otra vez, y cada vez que se abre un nuevo buffer eshell.
Pantalla Invocación GNU es otra opción para aquellos que utilizan ANSI plazo
Mybe, la solución siguiente es mejor. Debido a que el tampón eshell se determina por el valor de eshell-buffer-nombre. No es necesario cambiar el nombre de la memoria intermedia.
(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))
maquillaje eshell , esto crea un eshell añadiendo el siguiente contador, así que es como 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))))