如何在Termux中调用ACODE等安卓GUI文本编辑器直接打开本地文件
操作方案
该需求完全可以实现,具体操作如下:
前置准备
- 首先确保Termux已安装基础工具包,执行
pkg update && pkg install termux-tools - 由于安卓应用默认无法访问Termux私有目录,建议将需要编辑的
file.sh移动到手机公共存储目录,比如执行mv ~/file.sh /storage/emulated/0/Documents/,同时给目标编辑器授予存储访问权限。
方案1:通用编辑器调用(无需指定包名)
直接使用Termux官方提供的termux-open工具即可,执行命令:termux-open /storage/emulated/0/Documents/file.sh
执行后系统会弹出支持打开文本文件的应用列表,选择你偏好的ACODE编辑器即可,也可以设置为默认打开方式,后续调用会直接打开ACODE。
方案2:直接指定ACODE打开(无选择弹窗)
直接构造系统Intent传递文件参数即可,根据你使用的ACODE版本选择对应命令:
- 免费版ACODE:
am start --user 0 -a android.intent.action.VIEW -d file:///storage/emulated/0/Documents/file.sh -t text/plain -n com.foxdebug.acodefree/.MainActivity - 付费版ACODE:
am start --user 0 -a android.intent.action.VIEW -d file:///storage/emulated/0/Documents/file.sh -t text/plain -n com.foxdebug.acode/.MainActivity
方案3:封装为快捷命令
如果需要频繁使用,可以封装为全局脚本,步骤如下:
- 新建脚本文件
acode,内容如下:
#!/data/data/com.termux/files/usr/bin/bash if [ $# -eq 0 ]; then echo "用法: acode <目标文件路径>" exit 1 fi FULL_PATH=$(realpath "$1") if [ ! -f "$FULL_PATH" ]; then echo "错误:指定文件不存在" exit 1 fi # 免费版ACODE请保留下面一行,付费版请替换包名为com.foxdebug.acode am start --user 0 -a android.intent.action.VIEW -d file://$FULL_PATH -t text/plain -n com.foxdebug.acodefree/.MainActivity > /dev/null 2>&1
- 赋予执行权限并移动到系统可识别路径:
chmod +x acode && mv acode $PREFIX/bin/ - 后续直接执行
acode file.sh即可直接唤起ACODE打开对应文件。
注意事项
- 安卓11及以上系统需要手动给ACODE开启「所有文件访问权限」,否则无法读取公共存储的文件
- 如果不想将文件移动到公共存储,可以使用
termux-content工具生成文件的Content URI后传递给Intent,操作相对复杂,更推荐优先使用公共存储方案 - 如需适配其他文本编辑器,只需将命令中的
-n参数后的包名与Activity名替换为对应应用的值即可。
内容的提问来源于stack exchange,提问作者Shayer Mahmud
相关产品推荐
相关产品推荐

