Emacs 最近出了安卓版【这里点击下载】【相关的说明文档,faq】,我稍微用了一下,一些想法跟问题记录一下……
-
首先是文件权限的问题,
Android 11
及以上你可能需要进入(设置→特殊应用权限)里为Emacs
开启All Files Access
这个权限……如果你跟我一样,手机特殊应用权限里没有文件相关的权限的话,可以通过在
Emacs
里输入M-x android-request-directory-access
来为你需要操作的文件赋予权限。成功之后,你可以在/content/storage/
目录下找到你需要的文件,这里感谢 @oldosfan -
同样另一问题下面的问题,即关于字体的位置,同样感谢 @oldosfan 的回答,路径为:
/data/data/org.gnu.emacs/files/fonts
默认字体的颜色有点淡,我尝试换了其他字体,包括直接在手机主题里换字体……英文字体基本上没什么问题了,中文字体还是太淡,我尝试更换了
Emacs
主题也没用…… -
输入法问题,我用的是外接键盘,这里涉及到手机自带的小键盘的问题。 可以通过按
Alt+> (end-of-buffer)
的方式,让键盘呈现如下状态……而不是下面这个令人讨厌的状态……下面这个状态在手机横屏的时候尤其的讨厌……
不知道有没有办法让输入法的状态默认保持上面的这个状态,只有当手指点击屏幕的时候再变成下面这张图状态的方法,如果有的话,欢迎分享。
-
C-SPC
貌似无效,使用C-@
来set-mark
吧…… -
输入法跟键盘冲突的问题,应该是两者冲突造成的吧?在
dired
下,一些操作的会失效,比如按p
,n
来移动光标,并不是每时每刻都能生效,偶尔会被输入法给截取了(应该吧) -
不知道有没有好的办法把外接键盘的
CapsLock
映射成Ctrl
?
如果能开启 All Files Access 这个权限,还是建议避开 android-request-directory-access,SAF 主要用于访问 samba/CIFS/Nextcloud 客户端之类的 document provider。
Droid Sans Mono 淡可能是字体本身的问题,我个人使用的是 Noto Sans Mono VF,需要自己下载安装。
最后一个问题应该是输入法本身的毛病,安卓输入法各种毛病太多了,最好还是使用 LatinIME、GBoard 这种成熟的输入法。C-SPC 是安卓系统的问题。
谢谢,我手机上好像开启不了 All Files Access 这个权限(特殊应用权限里也找不到相关的选项),估计被屏蔽掉了……
Noto Sans Mono VF 我下载了,不知道具体的字体名应该填什么,试了几个好像都不太对…… 现在用的是 Source Sans Pro。 其实英文字体还好,比较要命的是中文字体,更加的淡……
其他的我再多试试……
中文字淡可能是因为字体太细了, 有的字体分细,中,粗, 可以选中或粗试试.
android系统什么时候能运行在pc上就好了, 成熟度和生态丰富度已经能媲美windows了.
安卓有 x86 版本的……
这个我知道,就是没啥人用,维护也不太积极了,版本也比较老。另外,android生态大部分都是arm的,不知道x86能否跟苹果一样做转译。
这东西如果这么小众的话,体验不会太好,还不如直接安装linux桌面。
Emacs 支持一切安卓支持的架构,包括 x86_64
请问一下,我把字体文件复制到/data/data/org.gnu.emacs/files/fonts下面,重启并没有找到该字体,是不是还要用类似mkfontscale,mkfontdir的命令来安装
字体已经解决,文档里面有说明,抱歉了,使用set-frame-font来设置,然后想拓展问一下,如果想单独给某个模式设定字体,需要如何定义呢
还有一个问题就是在termux中安装的一些命令在emacs里面运行报错,termux下运行正常,包括但不限于ffmpeg,mpv-x,报错信息如下:
cannot link executable: "/data/data/com.termux/files/usr/bin/mpv"
cannot locate symbol "_z17createheifdecoderv" referenced by "/system/lib64/libhwui.so"
补充一个问题,我把emacs锁定后台运行,但是隔一段时间之后会自动被结束,还是同样的,termux却是保持运行,不知道能不能让emacs同样正常在后台运行
后台出问题可能是某些app过度占用资源导致的,我开了termux和emacs待机一个晚上是正常在后台运行的
更新:后台问题是我修改了Androidmanifest.xml里面,在activity: org.gnu.emacs.EmacsActivity添加了android:excludefromrecents=“true”,目的是防止他人把emacs从后台运行列表划掉,去掉这个就锁定正常了,有没有办法解决呢,因为总有不自觉的人乱搞
关于字体目录,能不能改成用setenv来设置或者把fonts变成隐藏目录.fonts
关于LD_LIBRARY_PATH,可能需要把/system/lib64添加到环境变量里面,我在eshell里面执行export LD_LIBRARY_PATH=/system/lib64然后启动mpv就正常了,跟着修改readme里面的相关设置如下:
(setenv "PATH" (format "%s:%s" "/data/data/com.termux/files/usr/bin" "/system/lib64"
(getenv "PATH")))
(setenv "LD_LIBRARY_PATH" (format "%s:%s" "/data/data/com.termux/files/usr/bin" "/system/lib64"
(getenv "LD_LIBRARY_PATH")))
(push "/data/data/com.termux/files/usr/bin" exec-path)
但是仍然报错,这个环境变量要怎么写才对
更新:已经解决了,环境变量和exec-path都要加/system/lib64就可以正常使用了
另外出现一个新问题,请教一下看是mpv的问题还是emacs的问题,好去报issue
播放视频报错,使用命令:mpv test.mp4,该命令等同于mpv --vo=mediacodec_embed test.mp4,报错信息:
../src/video/out/vo_mediacodec_embed.c:40: AVBufferRef *create_mediacodec_device_ref(struct vo *): assertion "vo->opts->WinID !=0 && vo->opts->WinID != -1" failed
aborted
LD_LIBRARY_PATH 不应该包括 /bin,应该设置为:
(setenv "LD_LIBRARY_PATH" (format "%s:%s" "/data/data/com.termux/files/usr/lib" "/system/lib64"
(getenv "LD_LIBRARY_PATH")))
关掉后还是会时不时跳出来……一般插上键盘的时候就会弹出按钮来让你关闭了,不关闭的话,第一张截图弄不出来的吧……