我想学习 Emacs 或 Vi。我不喜欢模态编辑,但 Vi 无处不在,而且看起来对紧急情况更有用。大多数发行版中没有预装 Emacs 的原因是什么?
答案1
直接的答案可能是vi
POSIX 标准的一部分(@jasonwryan 在评论中也提到过),以及单一 UNIX 规范。因此,任何自称为 POSIX 兼容的东西都可能包括vi
类似的东西,以及任何想要自称为 UNIX 的东西有,否则您将无法获得认证。不仅如此vi
,相关的行编辑器ex
和涉及的脚本语言也是这些标准的一部分。emacs
不是标准的一部分,因此不包括在内。
至于为什么之所以如此,有几个原因。其一,emacs
比 更大、更复杂vi
。除其他外,还有一整套 LISP。决定这一点的 POSIX 部分是在 1992 年编写的,当时您需要一台非常强大的计算机来运行emacs
.我曾vi
在 286 上看到过 Minix 的运行情况,还算不错。虽然这对于现代桌面来说并不是那么重要,但在嵌入式系统上它仍然非常重要。它的大小和多功能性也使得检查其安全漏洞变得更加困难,这在某些必须安全的应用程序中可能是一个问题。基本上,所有可能使它成为更好的桌面应用程序的东西都会使其成为更糟糕的系统组件。
如果您要上历史课,您也可以说这vi
更接近Unix哲学:做一件事并把它做好。事实上,vi
它源自ex
,并且一直是一个 Unix 程序。emacs
来自一个截然不同的世界:它最初是建立在 TECO 之上,为它是操作系统。它直到 20 世纪 80 年代才被移植到 Unix,当时 ITS 正在消亡。这emacs
实际上使得一个来自不同文化的移民,同时又vi
是一个本地人。
有趣的是, 和 都是emacs
在vi
1976 年首次问世的,所以不仅仅是它vi
更老。
答案2
事情不是这样的。
默认安装的软件包的选择通常是由实际需要决定的。没有任何实际原因需要将特别的 emacs 添加到默认安装中,除非您正在安装专门针对 emacs 用户的发行版(如果有类似的东西的话)。
典型的 Linux 发行版默认安装一个最小系统以及用户群预期使用的系统(通常是图形桌面、firefox、libreoffice 和一些工具)。如果 emacs 不是最小系统的一部分,那么将其包含在默认安装中就没有意义。
最小系统允许高级用户(管理员)运行系统,使用命令行执行基本配置任务,并安装他想要的任何内容。
在这样一个最小的系统中肯定需要一个文本编辑器,因为您可能需要编辑配置文件。一个好的最小候选是纳米由于它易于使用且占用空间非常小,因此您会在当今大多数发行版的最小系统中找到它。另一个好的候选者是一个简单的实现六因为,正如其他人提到的,它是 POSIX 系统上的标准编辑器。这就是为什么最小系统通常包含这两个,有时只包含其中之一。
一个完全错误的选择是emacs它不是最小的,不像 nano 那样容易使用,也不像 vi 那样标准。另一个相当糟糕的选择是完整安装维姆。这些工具属于完整安装,从您最喜欢的编辑器的完整家庭设置到共享计算机的大学设置,并为广泛的用户选择安装的工具。