Emacs 已经有了安卓版,可以从Sourceforge下载,README 提供了一些常见问题的解答。本文是我遇到的另外一些问题以及解决方法。
安卓版 Emacs 启用的配置文件夹 .emacd.d
位于其私有目录 /data/data/org.gnu.emacs/files
,其他应用无法打开,并且卸载应用时其下所有文件也会一并删除。这非常不利于对其进行管理,毕竟在安装后,Emacser 首先启用的总是自己精心维护的配置文件。不过这个问题可以用软链接的方式解决。
首先授权给 Emacs 文件管理权限: M-x android-request-storage-access
。之后进入控制台: M-x shell
。这时所在的目录应该为 /data/data/org.gnu.emacs/files
。
cd /data/data/org.gnu.emacs/files
rm -rf .emacs.d # 删除自动生成的配置文件目录
ln -s /storage/emulated/0/emacs/.emacs.d .emacs.d # 生成软链接
这里假设配置文件位于设备的外部目录 emacs/.emacs.d
,其中 emacs
是 Android与DCIM 的同级目录。这样一来就可以用外部应用比如 Termux 管理 Emacs 的配置文件了。事实上,安卓版 Emacs 还提供了一个与 Termux 联动的版本,README 提供了具体做法。
安装后一般无法显示中文,解决方法是下载字体文件,解压后放入文件夹 /data/data/org.gnu.emacs/files/fonts
,这也可以用软链接解决,比如:
ln -s /storage/emulated/0/emacs/fonts fonts
之后重启Emacs即可。
在使用蓝牙键盘时,发现一些输入法比如 Fcitx5 无法输入中文,只能在虚拟键盘展开时输入。这其实也是 Termux 存在的问题。
在使用 I-search 时,同样无法输入中文,这时可以按下 C-\
启用拼符模式,默认是中文全拼,再次按下 C-\
以关闭。
如果在安卓端字体显示过小,可以用 (set-face-attribute 'default nil :height 180)
调整,单位为像素。
打开由 Git 管理的文件时,Emacs (非Termux版) 可能会报错 Error: (file-missing "Searching for program" "No such file or directory" "git")
,可以用 (delete 'Git vc-handled-backends)
解决,当然,这条配置只需要在缺少 Git 的安卓端启用。
对于仅适用于安卓端的配置,可以用下面的命令以有选择地启用:
(if (eq system-type 'Android)
(load-file "~/.emacs.d/init-android.el")) ;; 假设它们位于 .emacs.d/init-android.el 文件中