文件浏览与代码编辑
版本说明
文件树与代码编辑页从 1.11.0 起提供。
侧边栏顶部的「文件」标签页用来浏览当前工作区,点文件默认打开全屏的代码编辑页(图片与安装包除外,见下文「图片与安装包」)。本地工作区和远程 SSH 工作区都支持,读写方式按当前模式自动决定。
浏览文件
「文件」页是一棵从工作区根就地展开的缩进文件树。
- 第一行是工作区根
workspace,它自身也可折叠展开(默认展开),右侧有一个刷新按钮。 - 点目录在原地展开或折叠,点文件直接打开编辑页(图片、安装包见下文「图片与安装包」)——无需逐级进入与返回。
- 目录排在文件前面,同类按名称排序。
- 文件按类型显示不同图标(代码、脚本、配置、文档、图片、音视频、压缩包等),采用与 App 全局一致的单色线性图标并跟随主题色着色。
- 着色规则类似 VS Code:
.开头的隐藏文件显示为浅色弱化,被工作区根.gitignore命中的条目显示为橙色(只看根目录的.gitignore,不解析子目录里的)。 - 路径很深或文件名很长时不受影响:整棵树共享一个横向滚动,名称不会截断成省略号,左右滑动即可看全。
- 你展开或折叠过的目录会按工作区记住,关掉 App 再打开、或者切走再切回同一个工作区,都会恢复上次的展开状态。
- 浏览范围限定在工作区内,不能退到工作区外面。
图片与安装包
文件树里的图片(png / jpg / jpeg / gif / webp / bmp)点击后进入应用内的全屏查看器,可以捏合缩放、双击放大,与聊天区看图一致;APK / APKS / XAPK 点击后直接调起系统安装器(首次会引导你开启「允许安装未知应用」)。这两类都不会进入代码编辑器,其余文件仍照常打开编辑页。
从对话中打开文件
AI 在对话中引用代码时会把路径写成可点击的链接(带下划线的 文件路径:行号)。点击这类链接会直接打开编辑页,带行号的还会自动滚动到那一行,并使其尽量停在屏幕中间(目标行靠近文件开头或末尾时受滚动范围所限会贴边)。打开后你一滑动,自动定位就交还给你,不会再把画面拽回目标行。
支持工作区内的文件、AI 配置目录(~/.aicode/...)以及容器系统文件(/etc/...、/root/...),远程 SSH 工作区下同样可以打开。指向普通网址的链接不受影响,仍然用系统浏览器打开。
点到不存在的路径、目录,或超过大小上限的文件时,编辑页会给出对应的失败提示。
列表刷新
本地工作区下文件变动会自动刷新,不限于 AI 改的——你在终端里执行命令、或用其他 App 改动同样会被感知。
它监听的是工作区根和当前所有已展开的目录,不递归整棵树,因此大仓库下也不会占用大量系统资源;折叠某个目录后就不再监听它。
另外两个刷新时机:侧边栏每次出现都会重读一次(宽屏常驻侧栏下,每次从其它页面回到聊天页也算);工作区根那行右侧的刷新按钮可随时手动重读。
远程 SSH 工作区无法监听远程文件系统的变动,只能依靠这两个时机刷新,发现列表和实际不符时点击刷新按钮。远程模式下读目录要走网络,可能有短暂的加载状态,失败时会在列表位置显示具体原因。
新建、重命名、删除
长按目录行(包括最顶部的工作区根),从底部菜单里选「新建文件」或「新建文件夹」,新建的条目落在该目录下。如果长按的是折叠状态的目录,会先自动展开好让你看到结果。
名称只能是单个条目名:含 /、\ 或是 .、.. 时确认按钮不可点击——避免误创建到其他目录。同名条目已存在或目录不可写时会提示失败,不会覆盖原有文件。
长按文件或子目录行可以重命名和删除(工作区根节点只能新建):
- 重命名:只在同一目录内改名,不做跨目录移动。
- 删除:文件直接删除;文件夹会连同里面全部内容递归删除,所以会先弹确认框。
删除不可撤销
删除不进回收站,也不受检查点保护。确认前请考虑清楚,尤其是删除文件夹。
复制、剪切与粘贴
长按文件或子目录选择「复制」或「剪切」,再长按目标目录选择「粘贴到此处」。目标已存在同名条目时,会先询问是否覆盖;覆盖会替换原有条目及其内容,不可撤销。
不能在原目录用粘贴覆盖源条目,也不能把文件夹复制或移动到自身及其子目录。此类操作会被拒绝,源文件保持不变。
代码编辑页
点文件后侧边栏收起,进入全屏编辑页。
顶部左上是返回,右上依次是撤销、重做、保存、设置。撤销和重做在没有可操作内容时置灰,保存按钮只在有未保存改动时可点。
- 撤销按输入停顿分步:连续快速输入算一步,停顿约半秒后再输入即算新的一步。一路撤销回打开时的样子后,文件名前的星号消失、保存按钮置灰,此时退出也不会再提示是否保存。
- 打开 Markdown 文件时,撤销按钮左边会多一个预览切换按钮,点击切到渲染效果,再点切回源码。预览和源码共用同一编辑状态,切换不会丢失未保存的修改。
- 预览是完整的 Markdown 渲染:文档里内嵌的 HTML(居中标题、图片、表格排版、徽章等)会照常显示,代码块带语法高亮,配色跟随应用深浅主题。文档里的相对路径图片(如
docs/a.png)会从当前工作区读取,远程工作区也能显示;网络图片(徽章、在线图表等)需要联网才能加载。预览页内点击链接不会跳转,避免离开当前文档。 - 预览不含 LaTeX 公式渲染,含公式的文档切回源码查看。
- 导航栏下面有一条文件名小栏:左边是文件名(有未保存改动时前面加星号),右边是光标的行列位置和文件编码。
- 底部快捷符号栏可横向滚动,最左是光标左右移动和缩进(Tab),后面是编程常用符号(括号、引号、运算符、
;:|&等),点击即在光标处插入。软键盘弹出时符号栏会浮在键盘上方。 - 有未保存改动时,点返回或按系统返回键会先弹确认框,可以选「不保存」或「保存并退出」。
- 滚到文件末尾还能再上滑半屏:最后几行不会紧贴屏幕底边,方便在文件结尾处编辑。
语法高亮
内置了这些语言:Kotlin、Java、Python、JavaScript/JSX、TypeScript/TSX、JSON/JSONC、YAML、Shell、Go、Rust、C/C++、CSS、XML、HTML、Markdown、PHP、Lua。.kts 按 Kotlin 高亮。未识别的类型按纯文本显示,不影响编辑。
配色用的是 VS Code 默认主题(深色 Dark+ / 浅色 Light+),随应用主题自动切换,编辑过程中切主题不会丢失未保存的内容。
编辑器设置
点右上角设置按钮进入独立的设置页,改动即时生效并记住,下次打开沿用:
- 字体大小:滑块调节。
- 自动换行:开启后长行折行显示,不再横向滚动。
- 显示缩进参考线:默认开启。
- 显示自动换行箭头:自动换行开启时在折行处画指示箭头,默认关闭。
- 显示空白符号:把空格、Tab、换行可视化,默认关闭。
保存与并发
保存是整份覆盖写回,成功后提示「已保存」。
不做外部并发检测
AI 工具或终端可能同时在改同一个文件,而保存会直接用编辑器里的内容覆盖,不会提示文件已被外部改动。如果你和 AI 可能同时动同一个文件,先让一方改完再动手,避免互相覆盖。
限制
- 文件大小上限 2 MB。超过上限的文件不打开——内容需要整份读进内存,再大会明显卡顿甚至崩溃。
- 不支持二进制文件。打开时会嗅探文件开头,识别为二进制(图片、可执行文件、压缩包等)会直接提示,不会把乱码当文本载入。
工作区文件在手机上的位置
「文件」页浏览的是工作区内容,而工作区文件、AI 配置都存放在应用私有目录里,普通文件管理器默认看不到。想用外部工具打开或备份时,有几种办法:
文件管理器挂载(推荐):App 实现了标准的 DocumentsProvider,可使用手机自带的「文件」管理器或第三方文件管理器(MT 管理器、Solid Explorer 等)找到并挂载 App 的私有根目录。挂载后能看到:
projects/:工作区项目。通过「添加本地目录」加进来的外部工作区不在这里,它们在你自行选择的设备目录下。aicode/:对应容器内的~/.aicode,里面有skills/(技能)、docs/(文档)、mcp.json(MCP 配置)等。
以 MT 管理器为例的挂载步骤:打开 MT 管理器 → 点左上角菜单(三横线)→ 侧边栏右上角的三个点 → 「添加本地存储」→ 系统文件选择器打开后点左上角三个点、选「AiCode」→ 点底部「使用此文件夹」。
内置终端:切到终端页,cd ~/.aicode 直接查看,用 vi 或 cat 查看编辑。
交由 AI 处理:AI 运行在容器里,你可以说“把 ~/.aicode/mcp.json 打印出来查看”或“在 ~/.aicode/skills/ 下写一个新技能”。
Root 设备:直接进 /data/data/com.aicode/files/(部分系统等价路径是 /data/user/0/com.aicode/files/)。其中 projects/ 是工作区根,aicode/ 对应 ~/.aicode,rootfs/ 是容器系统。注意 debug 构建的包名是 com.aicode.debug,两者私有目录完全隔离。