安卓手机上的Emacs

我上个月的博客有一篇关于 Emacs, 有一篇关于 Android手机. 自然而然,会有人希望在手机上运行 Emacs, 是不是? 我当时以为不行,但其实我错了。Emacs 可以在 Android 手机上运行,而且不是 ssh 到远程主机上,不是什么简化版,不是什么仿真器,而是真的 Emacs 直接运行在 Android 系统上,包括一切你在电脑上的 Emacs 所拥有的高级功能,例如 org-mode, magit, eww 等。Emacs 在手机上不打折!

Termux 终端

Emacs on phone
Emacs on phone

我说过,有没有字符界面是真电脑和假电脑的根本区别.我之前介绍过 ConnectBot,是手机上的全功能 ssh/telnet/local 终端仿真器。但手机上本地应用时各种字符界面工具不够,所以通常我只用它 ssh 到远端。下面介绍的这个应用叫 Termux,是完全针对手机本地使用的终端仿真器。它的软键盘扩展类似 ConnectBot, 但真正把 Termux 和其他终端仿真器区别开的是相当丰富的网上应用库,直接用大家熟悉的Debian系的 apt 工具可以访问! 换句话说,这是安卓上的 cygwin, 而且比 windows下的 cygwin 更好用。刚安装上app的时候它仅是一个极简系统,但我们可以:

$ apt install make git perl emacs
termux
termux

然后不到200MB流量之后,这些基础软件就安装到你的手机里了。Termux 本身可以从 google play 或 f-droid 安装,而且无需 root 你的手机。如果有一天你不想用它了,卸载 app 就会把 Termux 以及你通过 apt 安装的所有软件,以及你用这个环境产生的所有文件一起清除,不留痕迹,安全环保。

CPAN 及其他

cpan on phone
cpan on phone

当然,Termux 毕竟不是一个完全的 Linux Distribution,各种软件总会有些缺失。但它有 gcc 和基础库,实在不行可以自己编译。但在此之前你还有相对简单的方法安装软件。假如你所需要的软件是 perl 写的,你可以用 CPAN 来下载安装。我用 cpan 安装了 template toolkit 和 ack, 都是比较复杂的 perl 软件包,都能顺利安装成功测试通过。当然,也不仅限于 perl 和 cpan, python 上也有类似的软件发布平台 pip, ruby 和 node.js 也有类似的基础设施,这些平台都能在 Termux 上找的到,有点遗憾的是 Haskell 平台暂时还没有。CPAN 证明了一点,有了 Termux, 安卓已经是一个真的通用操作系统了。

Emacs

melpa on phone
melpa on phone

Termux 已经包含 emacs 26,相当新了。其中,org-mode 和大多数你用的到的 emacs 组件都已经自带,另外,和 perl, python, ruby 等一样,emacs其实也是个编程语言以及应用发布平台。通过 emacs 自带的 melpa 平台,我们可以很轻易安装其他附加软件包,例如常用的 markdown-mode 和我之前介绍过的magit (git 前端)。安装了几个包之后,这个手机上的 emacs 已经达到了和我工作电脑上完全一致的功能。你目前看到的这份博客其实是完全在手机版 emacs 上写作完成的。而且,当你有了真的 emacs 和 git 之后,其实我上个月介绍的几个安卓应用,例如 syncorg, mgit 等对我也基本失去了意义,何必不用全功能并且和电脑一致的软件呢?

用途

Magit
Magit

让我再分析一下在手机上安装命令行环境,emacs 及其附加软件的意义。它带给我们很多功能,但不是所有功能都很有意义。比如,如果我愿意的话,我其实可以在手机 emacs 上读写邮件,但这恐怕不能给我带来什么价值,毕竟手机环境下有更好用的邮件客户端。在手机上用 emacs 和 git 的真正价值在于它提供了一个分布式的写作平台,而且手机环境和电脑环境完全保持一致,让我能无缝地在电脑和手机之间切换,当没有电脑或使用电脑不方便的时候可以继续写下去,而不是仅仅刷屏微信什么的。相比之下,wiki 不好用,Google doc 不能离线,用邮件把 word 文档传来传去? 还不如把我杀了。

总结

文字界面的历史超过我的年纪。很多人认为,文字界面不方便,不人性化,在1984年第一代 Mac 诞生的时候,苹果为了标榜革命,甚至完全去除了它的文字界面。但十几年后,Mac OSX 又加上了标准的文字界面,承认了当年的错误。Emacs 在我心中是文字界面的终极大 BOSS, 通过对文字的极致处理,衍生出种种周边功能,从而俯瞰其他编辑器。在智能手机成为现代人身体的一部分的今天,在 Termux 的帮助下,手机终于打通了关,见到了 BOSS. BOSS 其实从来未变,他一直在这里等待。