MicroEMACS/JED/TECO 使用体验

MicroEMACS 就是那个 Linus 用的 Emacs 编辑器。关于 Linus 到底算不算 Emacs 党。这是一个很可疑的问题。

关于 Emacs 的历史知识,下面的 Repo 有列出各种历史版本的 Emacs。

安装起来很容易,总共不到1mb,macOS 下面有预先编译好的版本,能直接运行,(不过图形界面需要 X Window,tty版本没法用鼠标和退格键),照官方说明就是了。

相比 GNU/Emacs 主要特点是相对图形化,基本操作和裸的 GNU/Emacs 没多少区别。当然 package 是根本不兼容的,它用的是完全不同的配置语言。

哦对了,因为这个编辑器本身的问题,不支持非ASCII字符的显示,所以对中文支持不友好。

比较让人吃惊的是,内置游戏里面居然有麻将!! 我一直在想 Emacs 里面没有麻将游戏,之前学Lisp的时候还写了个原型出来。

结果。。。

原来是 Window 7 里面的那个。

以及在Windows里面的经典纸牌这里也有:

这个才是日历的正确用法嘛。

很明显,MicroEMACS 的配置语言不是 Emacs Lisp。所以这也是为啥 Linus 不能算通常意义下的 Emacs 党。实际上 MicroEMACS 有很多版本,上面的那个是公认比较好的 JASSPA 版,Linus自己也维护了一个版本: uemacs/uemacs.git - Micro-emacs

8 个赞

接下来是另外一个 Emacs ,jed 的介绍。

这一个同样很轻量,而且支持 UTF-8,不过在 X 下面的表现不如 MicroEmacs 那么出色,但是能支持终端下的鼠标点击。有一个很不错的优点,支持多线程。

同样它不是用 Emacs Lisp 扩展,而是用了一种类似C的脚本语言的s-lang。

我已经用它来代替之前在终端环境下使用的vim了,现在已经懒得折腾那些插件了,至少写中文的时候能方便一点。

至于 RMS 对这些 Emacs 的看法:

https://www.emacswiki.org/emacs/ErsatzEmacs

这些都不叫Emacs。

1 个赞

用 MicroEmacs 主要还是为了速度快吧,所以有没有 X 界面我觉得倒是不重要。

只不过现有所有的 uEmacs 的中文/utf8支持都挺成问题的。

QEmacs 有 UTF-8 支持,甚至还内置了中文输入法,支持CSS渲染,不过我没编译成功。

它的多语言支持基于一个居住在日本的葡萄牙人写的编辑器,Yudit

快速编辑,我用zile

最后我终于把魔爪伸向了 TECO,没错就是最早的 Emacs所基于的编辑器!

vi,Emacs,都是屏幕操作的,ex,sed是行操作的,TECO,全称 Tape Editor and COrrector ,是字符操作的,顾名思义,最早是用来编辑纸带的,后来也能用来编辑ACSII文件。

http://almy.us/teco.html

TECO的历史远比unix久,如果想在现代操作系统上尝试,可以用这个用 C 实现的 TECO。这个版本支持实时显示编辑内容,也就是 Vedio 模式,但是还是要通过输入指令来编辑,而且没内容高亮。附赠原版说明书。需要指定输出和输入,只能同时编辑一个文件。

另外一个看起来更加上道一点的(似乎就是因为这个有个状态栏),顾名思义,是可以实时显示的 Vedio TECO,相比前一个更加现代化一点,编辑的时候不用建立缓存,而且界面更加直观一点,支持多 Buffer。

图为 Vedio TECO,上方是实时显示界面,下方是命令输入框,不支持非ASCII字符。

在性能方面,绝对放心,和你用的电脑内存一样大的文件都能编辑,而且飞快,就是自虐了一点。 体积上,只要264K。

TECO要在每条指令以后连续按两个ESC执行命令(Vim用户:喵喵喵??),当然可以设置成其他字符以免在某些平台上没ESC可用。能用宏扩展,扩展语言就是操作命令,和后来的一些编辑器,比如vi一样能在命令之前加数字参数来重复执行,支持用负数作为参数(3l表示向下两行,-3l是向上两行)。

TECO扩展语言是非模块的,而且无法传递参数,程序之间只能通过全局变量交流。(Haskell用户:???),有人评价shell script是只写的,写完以后就不知道什么意思。然而TECO语言才真叫无法阅读,用户写的宏需要写不少注释来方便维护。

我大概理解了为什么说 Emacs 是精神病人的编辑器了。

如果嫌编译安装麻烦的话,有个Emacs Lisp实现: https://www.emacswiki.org/emacs/teco.el

3 个赞

我试用了Emacs Lisp实现的TECO,感觉可以用来替代Evil的EX模式和一部分正则功能,在Emacs里面实现个支持UTF-8的TECO估计不难。然并软。

MicroEMACS的UI很棒,而且工具栏Buffer不会和普通Buffer混起来。感觉GNU/Emacs实现不了那种用ASCII模拟的图形界面。

目前还有主要问题是高亮支持得不多。 不明白以前没有高亮的时候是怎么码的……

感觉自己入了一个大坑:

这是上面 Video TECO 的维护者搞的现代化TECO编辑器,有行号,有高亮,支持终端和GTK+3界面,GTK界面支持CSS渲染。目前还是测试版,但是已经能很好地用了。

因为基于Scintilla,所以很容易植入一些现代编辑器的功能。

如上图所示,支持中文等多语言显示,但是删除是半个中文字节,也就是一个字节。

有一个在线 DEMO 可以用。

求麻将的游戏

没有做 AI ,而且最近在重构,打算用这个做个Elisp 编程的范例。

楼主可以尝试一下 Climacs : GitHub - robert-strandh/Climacs: Version 1 of the Climacs editor.GitHub - robert-strandh/Second-Climacs: Version 2 of the Climacs text editor. 。如果还有兴致的话, remacs 等着你: GitHub - remacs/remacs: Rust Emacs

1 个赞

CL 系的 Emacs 和 Rust Emacs 之前在 macOS 编译不成功,只试过 CCL IDE 附带的一个 Emacs,是基于 CMULisp 的 Helmlock 的一个分支。

最近换了 Gentoo Linux ,考虑重新试一下。

不知道怎么找到了一个叫em的东西。 https://github.com/sctb/em

1 个赞

做好一件事和做好一堆事两种哲学

补个 XEmacs

用 ssh forward 在 macOS 上体驗的。这个版本沒有 gnus, calendar 等功能,能看出和同時期 GNU/Emacs 明顯的区別是在 Dired 是个单独实現上。

为何"牛逼的编辑器",第一个面对的问题都是"实在找不着北,不想玩儿了,可是如何退出来呢?"

1 个赞

就和現在的 3A 大作游戏都自帯新手教学,以前的大作比如 Swordquest 沒有手册就不能玩了一样。而現在能玩的旧游戏有两种,一种是面向新玩家的以致敬为主,就能有各種现代特性,

另一种则是面向硬核老玩家的完全复刻,大家都知道規則,自然不需要多餘的说明。

一个极端的例子,Tetris 这样的游戏太出名,人人都知道規則。


換句話說,退不出 vi 是见识不足,退不出 vim 是智力不够。

1 个赞

也可能是不懂英文 :slight_smile:

the story is, “how to quit vim” is a question on StackOverflow. and the sad story is everyone knows it’s a kind of trolling. And another sad story is someone takes trolling as real, and the even worse story is I have to answer those who take the trolling as real as if the story is real.

这个 github 头像有点熟悉,在哪见过。。。想起来是作者今天在论坛注册了,发了一个回复推广 teco 。

感觉他应该回复这个帖子啊:smiley: