从emacs内部启动shell的所有方式有哪些,它们的各种属性是什么?


25

我至少知道四种可能性:

  • 外壳
  • 术语
  • 期限
  • 贝壳

emacs内置的用于启动外壳程序的工具的完整列表是什么,它们提供了什么优点和缺点?


1
这是一个问题的有趣示例。似乎网站上的某些人(包括我们两个人)喜欢这种问题,而其他人确实不喜欢。结果可能会根据主持人的响应而变化。我已经开始讨论有关meta的问题,并以meta.emacs.stackexchange.com/questions/305/…
Joe Corneli 2015年

Answers:


31

M-x shell是OS Shell的标准接口。在linux上,它调用bash(或任何默认值),在Windows上,它调用cmd.exe。M-x shell是最常用的。

M-x eshell是完全用emacs lisp编写的shell。它的语法类似于bash,但是与elisp很好地集成在一起。例如,您可以在那里评估elisp代码。当您未安装cygwin等时,Eshell在Windows上特别有用。

M-x term并且M-x ansi-term是终端仿真,与gnome-terminal,xterm等类似。主要区别M-x shell在于,in eshellshell中的键仍然是emacs密钥,但in term中的emacs密钥不起作用。但是,这样做的好处是您可以运行ssh,vim或任何基于文本UI的命令,而这些命令在M-x eshell或中不起作用M-x shell

termansi-term以前是不同的包,但现在他们都在同一个文件term.el. 2个不同的命令 我没有用太多。您可以在emacs Wiki上找到有关此问题的更详细的答案。

我的博客上还有更多信息。


1
“现在有2个不同的命令在同一个文件中”。那里可能缺少一两个单词。
Faheem Mitha 2014年

2
好答案。提到的Wiki页面的链接也很好。
马拉巴巴2014年

3
“ Mx shell是最常用的外壳程序”-我希望引用或一些数据来支持它,因为我一点也不相信它是真的。同样,它也没有为答案增加实质性内容。否则,好的答案。
shosti

2
shosti,我没有确切的统计数据。根据文件头,shell是1988。eshell是1999。term.el也是1988。eshell主要由elisp黑客使用,因此比emacs用户少得多。这留下了壳与条款。我认为我们可以在emacs书中比较它们的提及,例如O'Reilly的3本书左右。还是Google的比较...但是仅从emacs社区中获得的经验来看,我认为术语/ ansi-term很少使用。
Xah Lee 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.