gnu入门
我在许多服务器上工作,有时会发现未安装GNU Emacs的主机。 通常会有一个GNU Nano安装程序使我无法使用Vi ,但是我不习惯像Emacs那样使用Nano,而当我尝试保存文档时,不可避免地会遇到麻烦(Nano中的Cx代表Exit, Cs锁定Konsole)。
虽然在任何地方都可以使用GNU Emacs会很好,但是它是用于对配置文件进行简单更新的大量程序。 我对小型轻巧的emacs的需求使我无法发现MicroEmacs,Jove和Zile,这是微型,独立的emacsen ,您可以将其安装在拇指驱动器,SD卡和几乎任何服务器上,因此,永远不会没有emacs编辑器。
最终,这些宏被捆绑到一个称为“编辑宏”(简称EMACS)的程序包中。 GNU Emacs是最著名的emacsen(是的,-en后缀用于描述许多emacs,如“ oxen”一词),但它不是唯一的。 而且肯定不是最小的。 恰恰相反,GNU Emacs可能是最大的Emacs之一。
幸运的是,GNU Emacs非常流行,以至于其他emacs实现倾向于模仿大多数GNU版本的基本控件。 如果您正在寻找不是Vim的基本,快速,高效的编辑器,则对这些选项中的任何一个都可能会感到满意。
MicroEmacs由Dave Conroy编写,也称为uemacs(在希腊字母µ中,用科学符号表示“ micro”),但是克隆和修改它的用户很多。 一个维护µemacs个人版本的用户是一个名为Linus Torvalds的程序员,他的副本可以从他的网站kernel.org (还有一个名为Linux的小型项目)中获得。
以我可以在计算机上施加的最慢的设置,我需要五秒钟的时间来编译µemacs,结果二进制文件仅为493KB。 诚然,与GNU Emacs下载的典型大小相比,这并不是字面上的“微型”(根据我的计算,70MB的百万分之一是70字节),但是它相当小。 例如,通过电子邮件或通过Signal将其发送给您自己很容易,并且肯定足够小以方便您拥有的每个拇指驱动器或SD卡。
默认情况下,Linus的版本需要libcurses,但是您可以在Makefile中覆盖此设置,以便改用libtermcap。 生成的二进制文件足够独立,可以在大多数Linux机器上运行:
$
ldd em
linux-vdso.so.1
libtermcap.so.2 =
>
/ lib64
/ libtermcap.so.2
libc.so.6 =
>
/ lib64
/ libc.so.6
/ lib64
/ ld-linux-x86-
64 .so.2
键盘快捷键与您期望的一样。 您可以打开文件并进行编辑,而无需意识到自己不在GNU Emacs中。
缺少一些高级功能。 例如,尽管有水平分割,但没有垂直缓冲区分割。 没有eval命令,因此您不会在Lisp编程中使用µemacs。
搜索功能也与您惯用的功能稍有不同: Ms代替了Cs ,如果您的终端仿真器接受Ctrl + S作为冻结命令,则可能会有所不同。 µemacs的帮助页面非常完整,因此请使用Mx帮助来熟悉它的功能。
µemacs的许可证是针对非商业条件的项目定制的。 您可以自由共享,使用和修改µemacs,但是您无法对其进行任何商业化。
虽然没有我通常喜欢的宽松政策,但它是个人使用的足够许可; 只是不要围绕它建立业务。
GNU Zile声称是用于文本编辑器的开发套件。 它旨在作为一个框架,使人们能够快速开发自己的自定义文本编辑器而无需重新发明通用的数据结构。 这是一个好主意,可能非常有用,但是由于我对自己创建编辑器没有兴趣,因此我仅使用其代码库附带的示例实现作为令人愉悦的轻量级emacs。
示例编辑器(虽然它呈现的二进制文件名为zile)的构建过程(据说称为Zemacs)是标准的Autotools过程:
$ .
/ configure
$
make
从源代码编译它在一个内核上花费一分钟,而在六个内核上花费大约50秒(配置过程很长)。 最后生成的二进制文件为1.2MB,这使它成为我使用的轻量级emacsen中最重的二进制文件,但即使与不带X的GNU Emacs(在我的系统上为14MB)相比,它也相对微不足道。
在我使用的轻量级emacsen中,它也是最复杂的。 您可以通过在配置过程中禁用功能来排除某些库链接,但这是默认设置:
$
ldd src
/ zile
linux-vdso.so.1
libacl.so.1 =
>
/ lib64
/ libacl.so.1
libncurses.so.5 =
>
/ lib64
/ libncurses.so.5
libgc.so.1 =
>
/ usr
/ lib64
/ libgc.so.1
libc.so.6 =
>
/ lib64
/ libc.so.6
libattr.so.1 =
>
/ lib64
/ libattr.so.1
libdl.so.2 =
>
/ lib64
/ libdl.so.2
libpthread.so.0 =
>
/ lib64
/ libpthread.so.0
/ lib64
/ ld-linux-x86-
64 .so.2
与µemacs或Jove相比,Zile的行为更像GNU Emacs,但这仍然是最少的经验。 但是有些令人耳目一新的感觉:制表符完成发生在缓冲区中,您可以从迷你缓冲区中运行shell命令,并且有很多可用的功能。 但是,它绝不是GNU Emacs的替代品,而且如果您在高级功能上徘徊太远,您将发现为什么它只有1.2MB。
我一直无法找到应用程序内帮助文件,并且与其捆绑在一起的手册页非常少。 但是,如果您对Emacs感到满意,则Zile是完整的14MB(如果使用GUI则为更大)版本和极其轻量级的实现之间的良好折衷。
乔夫(Jove)是我的第一个微型Emacs,至今仍是我发现的最小的Emacs。 对我来说,这是一个容易发现的问题,因为它随Slackware Linux一起提供,并带有一个秘密的符号链接,很快成为我个人替代Vi二进制文件的对象。 Jove是基于GNU Emacs的,但是手册页告诫绝对不要期望功能奇偶性。 我觉得朱庇特,这样一个小二进制(其实,这篇文章写于天帝版本4.17.06-9)令人惊讶的功能丰富,但毫无疑问,重命名的.emacs到.joverc 不表现为你可能希望。
我用最慢的设置(-j1)编译乔夫需要五秒钟,而使用所有内核则需要大约一秒钟。 生成的二进制文件(默认情况下令人困惑地称为jjove)仅为293KB。
Jove二进制文件足够独立,可以在大多数Linux机器上运行:
$
ldd jjove
linux-vdso.so.1
libtermcap.so.2 =
>
/ lib64
/ libtermcap.so.2
libc.so.6 =
>
/ lib64
/ libc.so.6
/ lib64
/ ld-linux-x86-
64 .so.2
Jove的手册页形式很好。 您还可以通过键入Mx?获得所有可用命令的有用列表。 并使用空格键滚动。 如果您是emacs的新手 ,则可以运行tutorialjove来学习Jove(以及emacs)。
最常见的编辑命令和快捷键可以按预期工作。 存在一些奇怪之处。 例如,没有垂直分割,并且迷你缓冲区中的路径的制表符完成不存在。 但是,它是我发现的最小的emacs,但是它具有完整的GNU Emacs感觉。
如果您只尝试过GNU Emacs,那么您可能会发现emacsen的世界比您预期的要丰富。 emacs背后有着丰富的传统,并且尝试一些其变体,衍生产品和替代实现是对emacsen的工作方式感到满意的乐趣的一部分。 了解emacs; 随处携带一些构建,您再也不必使用不合格的编辑器!
翻译自: https://opensource.com/article/20/3/lightweight-emacs
gnu入门