Estoy usando Emacs 23.3.1 en Windows 7. Sé que puedo ejecutar shell desde emacs usando Mx shell. Me gustaría tener varias ventanas de shell al mismo tiempo, pero escribir Mx shell por segunda vez me abre la misma ventana de shell.
¿Hay alguna manera de tener diferentes ventanas de shell?
C-u
ejecuta el comandouniversal-argument
. Es una forma de inyectar un argumento en el siguiente comando. Puede leer más sobre esto conC-h k C-u
(¡C-h k
corredescribe-key
, muy útil!)C-h f eshell
(C-h f
ejecutadescribe-function
) muestra que la funcióneshell
toma un argumento opcional. Cita: Un prefijo numérico arg (como enC-u 42 M-x eshell RET
) cambia a la sesión con ese número, creándolo si es necesario. Un prefijo no numérico arg significa crear una nueva sesión.Puede cambiar el nombre del búfer de su shell con M-x rename-buffer. Entonces podrás lanzar un segundo shell.
fuente
Mire MultiTerm , hace que la administración de múltiples terminales en Emacs sea mucho más fácil.
fuente
También podría ser útil usar una interfaz similar a una pantalla para sus shells. He escrito el mío, pero hay otros por ahí, como EmacsScreen .
fuente
Después de más de cuatro años, veo que algunas personas todavía están viendo este problema a veces, por lo que publicaré una función rápida que escribí para cargar un shell y pedir su nombre. De esa manera, puede nombrar un shell "ordenar-archivos" si está dedicado a ordenar archivos y otro "colmena" si está dedicado a ejecutar consultas de colmena. Lo uso todos los días ahora (en emacs 24):
fuente
Esto generará automáticamente una nueva instancia de shell en cualquier búfer que esté utilizando; vincúlelo a MS o algo así y alegría instantánea:
Muchas gracias a phils por recomendar una reescritura usando let, a pesar de que el resultado es un paréntesis aún más horrible ...: \
fuente
let
vincular variables si están destinadas para uso local. Tal como está ahora tiene valores globales paracurrentbuf
ynewbuf
.Esto abrirá un nuevo shell cada vez que invoque la función y cambie el nombre automáticamente si es necesario. La ventaja adicional es que si está editando archivos de forma remota (dired / tramp ...), esto abrirá un shell en el host remoto y le cambiará el nombre automáticamente con el nombre de host remoto:
fuente