Auf welche Weise kann eine Shell aus Emacs heraus gestartet werden und welche verschiedenen Eigenschaften haben sie?

25

Ich kenne mindestens vier Möglichkeiten:

  • Eshell
  • Begriff
  • ansi-term
  • Schale

Was ist die vollständige Liste der in Emacs integrierten Tools zum Starten einer Shell und welche Vor- und Nachteile bieten sie?

Trevoke
quelle
1
Dies ist ein interessantes Beispiel für eine große Fragenliste. Es scheint, dass einige Leute auf der Website (einschließlich der beiden von uns) diese Art von Frage mögen, während andere dies wirklich nicht tun. Die Ergebnisse können je nach Reaktion des Moderators sehr unterschiedlich sein. Ich habe eine Diskussion über die Meta - Informationen, der auf diese Frage als Beispiel beginnt meta.emacs.stackexchange.com/questions/305/...
Joe Corneli

Antworten:

31

M-x shellist die Standardschnittstelle zur OS-Shell. Unter Linux wird bash (oder was auch immer Ihre Standardeinstellung ist) und unter Windows cmd.exe aufgerufen. M-x shellwird am häufigsten verwendet.

M-x eshellist eine Shell, die komplett in Emacs Lisp geschrieben ist. Es hat eine ähnliche Syntax wie bash, ist aber gut in elisp integriert. zB können Sie den Elisp-Code genau dort auswerten. Eshell ist unter Windows besonders nützlich, wenn Cygwin usw. nicht installiert ist.

M-x termund M-x ansi-termsind Terminal-Emulationen, ähnlich wie Gnome-Terminal, xterm usw. Der Hauptunterschied zu M-x shellist, dass in eshelloder shellSchlüssel immer noch Emacs-Schlüssel sind, aber in termEmacs-Schlüssel nicht funktionieren. Der Vorteil ist jedoch, dass Sie ssh, vim oder jeden Befehl ausführen können, der auf der Text-UI basiert und in M-x eshelloder nicht funktioniert M-x shell.

termund waren ansi-termfrüher verschiedene Pakete, aber jetzt sind es 2 verschiedene Befehle in der gleichen Datei term.el. Ich habe sie nicht viel benutzt. Eine ausführlichere Antwort dazu finden Sie im emacs-Wiki .

Es gibt einige weitere Informationen in meinem Blog .

Xah Lee
quelle
1
msgstr "jetzt sind 2 verschiedene Befehle die gleiche Datei". Möglicherweise fehlen ein oder zwei Wörter.
Faheem Mitha
2
Gute Antwort. Ein Link auf die erwähnte Wiki-Seite wäre auch nett.
Malabarba
3
"Mx-Shell wird am häufigsten verwendet" - ich möchte, dass ein Zitat oder einige Daten dies unterstützen, da ich überhaupt nicht davon überzeugt bin, dass es wahr ist. Außerdem fügt es der Antwort nichts Wesentliches hinzu. Gute Antwort ansonsten.
Shosti
2
Shosti, ich habe keine harten Statistiken. Shell ist laut Datei-Header 1988. Eshell ist 1999. Term.el ist auch 1988. Eshell wird hauptsächlich von Elisp-Hackern verwendet, das ist also viel weniger als Emacs-Benutzer. Das lässt Shell vs Begriff. Ich denke, wir können ihre Erwähnung in Emacs-Büchern vergleichen, zB die drei oder so alten von O'Reilly. Oder Google-Vergleich ... aber nur aus Erfahrung in der Emacs-Community denke ich, dass Term / Ansi-Term viel weniger verwendet wird.
Xah Lee