Quelles sont toutes les façons de lancer un shell depuis emacs et quelles sont leurs différentes propriétés?


25

Je connais au moins quatre possibilités:

  • eshell
  • terme
  • ansi-term
  • coquille

Quelle est la liste complète des outils intégrés à emacs pour lancer un shell, et quels avantages et inconvénients offrent-ils?


1
ceci est un exemple intéressant d'une question de grande liste . Il semble que certaines personnes sur le site (y compris nous deux) aiment ce genre de question, alors que d'autres pas vraiment. Les résultats peuvent être vraiment variables selon la réponse du modérateur. J'ai commencé une discussion sur les méta à ce sujet, en référençant cette question comme un exemple meta.emacs.stackexchange.com/questions/305/…
Joe Corneli

Réponses:


31

M-x shellest l'interface standard du shell du système d'exploitation. Sous Linux, il appelle bash (ou quelle que soit votre valeur par défaut), sous Windows, il appelle cmd.exe. M-x shellest le plus utilisé.

M-x eshellest un shell écrit entièrement en lisp emacs. Il a une syntaxe similaire à bash, mais est bien intégré à elisp. par exemple, vous pouvez évaluer le code elisp là. Eshell est particulièrement utile sur Windows lorsque vous n'avez pas installé cygwin, etc.

M-x termet M-x ansi-termsont des émulations de terminaux, tout comme gnome-terminal, xterm, etc. La principale différence M-x shellest que, dans eshellou shell, les clés sont toujours des clés emacs, mais dans term, les clés emacs ne fonctionnent pas. Mais, l'avantage est que vous pouvez exécuter ssh, vim ou toute commande basée sur l'interface texte, qui ne fonctionnera pas dans M-x eshellou M-x shell.

termet ansi-termautrefois différents packages, mais maintenant ce sont 2 commandes différentes dans le même fichier term.el. Je ne les ai pas beaucoup utilisés. Vous pouvez trouver une réponse plus détaillée à ce sujet sur le wiki emacs .

Il y a plus d'informations sur mon blog .


1
msgstr "sont maintenant 2 commandes différentes du même fichier". Il peut y avoir un ou deux mots manquants.
Faheem Mitha

2
Bonne réponse. Un lien vers la page wiki mentionnée serait également bien.
Malabarba,

3
"Le shell Mx est le plus fréquemment utilisé" - je voudrais une citation ou des données pour soutenir cela, car je ne suis pas du tout convaincu que c'est vrai. De plus, cela n'ajoute rien de substantiel à la réponse. Bonne réponse sinon.
shosti

2
shosti, je n'ai pas de statistiques fiables. selon l'en-tête du fichier, shell est 1988. eshell est 1999. term.el est également 1988. eshell est principalement utilisé par les hackers elisp, donc c'est beaucoup moins que les utilisateurs d'emacs. Cela laisse coquille vs terme. Je pense que nous pouvons comparer leur mention dans les livres emacs, par exemple les 3 ou plus anciens d'O'Reilly. Ou la comparaison Google ... mais juste par expérience dans la communauté emacs, je pense que term / ansi-term est beaucoup moins utilisé.
Xah Lee
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.