Skip to content

文件管理与代码编辑

第 12 章:文件管理与代码编辑——从浏览文件到让 AI 安全修改 ​

本章同时讲“你亲自操作的双栏文件管理器”和“Agent 使用的文件工具”。两者操作的是同一批真实文件,但入口和权限范围不同。

12.1 先认识手机路径 ​

路径/概念大白话解释
/storage/emulated/0手机主共享存储,通常包含 Download、DCIM、Documents 等
工作区你为当前会话或项目选中的文件夹,Agent 的主要操作范围
App 私有目录只属于 Lyra Code 的数据,卸载或清除数据会删除
PRoot rootfsApp 私有目录里的 Linux 文件系统,不是普通下载文件夹
SAFAndroid 系统文件选择器授予的目录访问权

新手最好在 /storage/emulated/0/Documents 或 Download 下为每个项目单独建文件夹,不要把整个主存储当作工作区。

12.2 第一次打开文件页 ​

  1. 打开侧栏 文件。
  2. 如系统请求“所有文件访问”,先阅读用途,再进入 Android 设置允许。
  3. 返回 App 后刷新。
  4. 左右两栏默认从共享存储开始。

这个权限只用于访问共享存储。PRoot Linux 的应用私有文件无需它也能通过专用入口管理。

12.3 双栏的核心逻辑 ​

左右两栏彼此独立。例如:

  • 左栏进入 Download;
  • 右栏进入 Documents/Work;
  • 长按左栏文件,选择 复制到另一栏;
  • 文件就复制到右栏当前目录。

当前激活栏会高亮。复制和移动前,先点击目标栏确认它处于正确目录,再回来源栏操作。

12.4 浏览和返回 ​

  • 点击文件夹进入;
  • 点击向上箭头返回上级;
  • 点击刷新重新读取当前目录;
  • 进入其他目录再返回时,应用会尽量恢复之前的滚动位置;
  • 目录切换动画方向用于提示正在进入还是返回。

在根目录时不能继续向上。

12.5 搜索文件 ​

  1. 点击页面右上角菜单。
  2. 选择 搜索文件。
  3. 输入文件名关键词。
  4. 选择范围:全部、仅文件、仅文件夹。
  5. 等待搜索当前路径及其子文件夹。

结果数量会显示在顶部。这里按名称搜索,不是搜索文件正文。要查代码内容,可以让 Agent 在工作区执行文本搜索命令。

12.6 排序 ​

右上角菜单可按以下字段排序:

  • 名称;
  • 修改时间;
  • 大小;
  • 类型。

再次点击升序/降序项可切换方向。目录和文件的显示规则可能与桌面文件管理器不同,批量操作不要只凭列表位置判断目标。

12.7 新建文件夹和文件 ​

在对应栏底部点击 +:

  1. 选择新建文件夹或新建文件;
  2. 输入名称;
  3. 确认;
  4. 刷新或在列表中查看结果。

文件名不要包含 /。创建代码文件时带上扩展名,例如 main.py、index.html、README.md,编辑器才能选择合适的语法高亮。

12.8 长按文件或文件夹 ​

长按会打开操作菜单:

操作说明
复制到另一栏保留原文件,在另一栏当前目录创建副本
移动到另一栏把原文件搬走,原位置不再保留
重命名只改名称,谨慎修改扩展名
属性查看完整路径、类型、大小、修改时间,并可复制路径
浏览器预览仅 HTML/HTM,交给已安装浏览器打开
解压把支持的压缩包解压到当前目录
删除永久删除,确认前核对路径

预览陌生 HTML 时要小心,其中的 JavaScript 会在浏览器环境运行。

12.9 批量选择 ​

通过界面提示的滑动选择或多选手势选择多项后,顶部会显示数量,并出现复制、移动、删除和取消选择按钮。

提交批量操作前会二次确认。确认框中重点检查:

  1. 选中了多少项;
  2. 当前来源栏;
  3. 另一栏目标目录;
  4. 是复制还是移动;
  5. 是否有同名文件覆盖风险。

批量删除没有回收站保障,重要目录先复制备份。

12.10 打开不同类型文件 ​

  • 文本和代码:进入内置编辑器;
  • 图片/视频:打开预览;
  • HTML/HTM:可长按选择浏览器预览;
  • APK:弹出安装确认,Android 可能要求允许“安装未知应用”;
  • 其他格式:尝试调用系统中能处理它的 App。

只安装来源可信、签名和用途明确的 APK。

12.11 特权文件访问 ​

文件页菜单可以配置 Root 或 Shizuku 文件访问:

  • Root:先检测 su 是否可用,再启用;
  • Shizuku:Shizuku 服务必须已运行,并授权 Lyra Code;
  • 测试访问:启用后先用测试按钮确认;
  • 禁用:不用时关闭,恢复普通应用权限。

特权模式可能访问或破坏系统文件。零基础用户不应为了“看到更多目录”随意开启;只有明确知道目标路径和恢复方法时才使用。

12.12 查看 PRoot Linux 文件 ​

在文件页右上角菜单选择 进入 PRoot Linux instances。阅读提示后选择环境。这里改动会立即影响正在使用的 Linux;复制备份前先停止终端,删除整个环境请到 设置 → PRoot Linux。详见PRoot Linux。

12.13 代码编辑器基础操作 ​

打开文本或代码文件后:

  • 左侧显示行号;
  • 根据扩展名进行 TextMate 语法高亮;
  • 保存按钮写入文件;
  • 菜单提供搜索、跳转到行、自动换行/单行显示和 AI 助手。

不换行模式适合代码,可横向滚动;自动换行适合阅读长文本。

12.14 查找和替换 ​

  1. 打开编辑器菜单 → 文件内搜索。
  2. 输入查找内容。
  3. 使用上一个/下一个在匹配间跳转。
  4. 如需替换,填写替换内容;留空表示删除匹配文本。
  5. 选择替换当前项或全部替换。
  6. 检查结果后再保存。

“全部替换”可能一次修改很多位置。先看搜索结果数量,结果异常时取消,不要直接保存。

12.15 跳转到行 ​

菜单选择 跳转到行,输入正整数。报错信息如果写着 Main.kt:128,就在对应文件跳到 128 行。

12.16 编码和备份 ​

编辑器默认用 UTF-8 解码。检测到错误时会警告:继续编辑并保存会把内容写成 UTF-8,同时把原文件保留为同目录 .bak。

正常保存修改过的文件时,也会创建 .bak 备份。退出有未保存内容时可以:

  • 保存;
  • 取消退出,继续编辑;
  • 不保存并关闭。

.bak 是最近一次覆盖前的后悔药,不是完整版本历史。连续多次保存前应确认备份是否会被更新;重要项目建议使用 Git 或单独复制快照。

12.17 编辑器内 AI 助手 ​

  1. 在编辑器菜单点击 AI 助手,或按页面提示从边缘滑出。
  2. 确认顶部显示当前文件。
  3. 若任务涉及整个项目,点击添加工作目录并选择项目文件夹。
  4. 用自然语言说明目标和限制。
  5. 审查工具调用、审批和差异回放。
  6. 完成后再次打开搜索或直接浏览相关行,确认最终内容。

示例:

只修改当前文件:把所有用户可见的英文报错翻成简体中文。不要改变量名。先列出预计修改的位置,得到我确认后再写入。

AI 正在应用编辑时,不要同时手工改相同文件。

12.18 工作区文件工具和全局文件工具 ​

范围常见工具适用场景
工作区list_directory、read_file、write_file、edit_file当前项目内,路径通常相对工作区
全局共享存储global_list_directory、global_read_file、global_write_file、global_edit_file工作区外的共享存储,写操作风险更高

如果工作区工具收到 /storage/emulated/0/... 这类绝对路径,可能提示路径越界。解决办法是选择正确工作区,或在明确授权时使用全局工具。

12.19 让 AI 安全修改文件的标准流程 ​

  1. 确认工作区:展开会话详情看目录;
  2. 读取规则:让 AI 先读 README、AGENTS.md 和相关文件;
  3. 先查后改:找出目标位置和影响范围;
  4. 小步修改:优先局部编辑;
  5. 审查差异:确认没有无关改动;
  6. 运行验证:执行项目测试、构建或预览;
  7. 汇报结果:说明改了哪些文件、验证了什么、还有什么风险。

可以直接发送:

先只读检查 README、AGENTS.md 和相关文件,告诉我你准备改哪些位置。得到确认后小步修改,最后运行最相关的测试并汇报。

12.20 AGENTS.md 项目规则 ​

在项目根目录放 AGENTS.md 可以记录长期约定,例如:

markdown
# 项目约定

- 构建命令:./gradlew assembleDebug
- 测试命令:./gradlew test
- 用户可见文字使用简体中文
- 不修改 build 目录和签名配置
- 删除文件前必须询问

规则只应描述项目事实、风格、测试方法和安全限制。不要把密钥写进去,也不要要求绕过审批。

12.21 常见问题 ​

文件页是空白或提示没有权限 ​

到 设置 → 应用权限 检查共享存储访问;Android 11 及以上还可能需要“所有文件访问”。授权后返回并刷新。

复制到了错误目录 ​

先不要继续移动。使用属性查看来源和目标完整路径,再把文件复制回正确位置。重要文件先保留两份,确认后再删除错误副本。

编辑器打开乱码 ​

原文件可能不是 UTF-8。不要立即保存;先用可靠工具转码,或者在确认 .bak 会保留原始字节后再继续。

edit_file 提示匹配数不对 ​

原文不存在或出现多次。让 AI 重新读取文件,使用更长的唯一上下文,或按准确行号范围编辑。

.bak 能否自动恢复整个项目 ​

不能。它是单文件备份。项目级恢复请使用 Git、压缩包或其他备份方案。


下一章:命令执行

AGPLv3