¿Cuáles son todas las formas de lanzar un shell desde dentro de emacs y cuáles son sus diversas propiedades?

25

Sé de al menos cuatro posibilidades:

  • eshell
  • término
  • ansi-term
  • cáscara

¿Cuál es la lista completa de herramientas integradas en emacs para lanzar un shell, y qué beneficios y desventajas ofrecen?

Trevoke
fuente
1
Este es un ejemplo interesante de una pregunta de la lista grande . Parece que a algunas personas en el sitio (incluidos nosotros dos) les gusta este tipo de preguntas, mientras que otras realmente no. Los resultados pueden ser realmente variables dependiendo de la respuesta del moderador. Comencé una discusión sobre meta al respecto, haciendo referencia a esta pregunta como un ejemplo meta.emacs.stackexchange.com/questions/305/…
Joe Corneli

Respuestas:

31

M-x shelles la interfaz estándar para el shell del sistema operativo. En Linux, llama a bash (o cualquiera que sea su valor predeterminado), en Windows, llama a cmd.exe. M-x shellEs el más utilizado.

M-x eshelles un shell escrito en emacs lisp por completo. Tiene una sintaxis similar a bash, pero está bien integrada con elisp. por ejemplo, puede evaluar el código elisp allí mismo. Eshell es especialmente útil en Windows cuando no tiene instalado cygwin, etc.

M-x termy M-x ansi-termson emulaciones de terminal, al igual que gnome-terminal, xterm, etc. La principal diferencia M-x shelles que, en eshello shell, las teclas siguen siendo teclas emacs, pero en term, las teclas emacs no funcionan. Pero, la ventaja es que puede ejecutar ssh, vim o cualquier comando que esté basado en la interfaz de usuario de texto, que no funcionará en M-x eshello M-x shell.

termy ansi-termsolían ser paquetes diferentes, pero ahora son 2 comandos diferentes en el mismo archivo term.el. No los he usado mucho. Puede encontrar una respuesta más detallada sobre esto en emacs wiki .

Hay más información en mi blog .

Xah Lee
fuente
1
"ahora hay 2 comandos diferentes en el mismo archivo". Puede que falten una o dos palabras allí.
Faheem Mitha
2
Buena respuesta. Un enlace a la página wiki mencionada también sería bueno.
Malabarba
3
"El shell Mx es el más utilizado": me gustaría una cita o algunos datos que lo respalden, ya que no estoy del todo convencido de que sea cierto. Además, no agrega nada sustantivo a la respuesta. Buena respuesta de lo contrario.
shosti
2
Shosti, no tengo estadísticas duras. según el encabezado del archivo, shell es 1988. eshell es 1999. term.el también es 1988. eshell es utilizado principalmente por hackers de Elisp, por lo que es mucho menos que los usuarios de emacs. Eso deja concha vs término. Creo que podemos comparar su mención en los libros de emacs, por ejemplo, los 3 o más viejos de O'Reilly. O la comparación de Google ... pero solo por la experiencia en la comunidad de emacs, creo que el término / ansi-término se usa mucho menos.
Xah Lee