跳转到内容

IDE 模式

IDE 模式让你直接在 OxideTerm 中编辑远程文件——无需下载、本地编辑再重新上传。所有操作通过现有 SSH 连接完成。

编辑器由 CodeMirror 6 驱动,支持:

  • 30+ 语言的语法高亮(16 种原生 CodeMirror + 通过 @codemirror/legacy-modes 提供的 legacy 模式)
  • 行号和代码折叠
  • 支持正则表达式的查找和替换
  • 括号匹配和自动闭合
  • 缩进参考线
  • 多光标和多选区编辑
  • 文件概览 Minimap

原生 CodeMirror 6 模式包括:JavaScript、TypeScript、Python、Rust、Go、C/C++、Java、HTML、CSS、JSON、Markdown、SQL、XML、YAML、TOML、Shell/Bash。更多语言通过 legacy 模式支持。

侧边栏文件树提供远程文件系统导航:

  • 懒加载目录 — 仅在展开时加载目录内容,适合大型远程文件系统
  • Git 状态指示器 — 文件显示已修改 (M)、未跟踪 (?)、已添加 (A) 状态和颜色标记
  • 事件驱动刷新 — 文件树在保存、创建、删除、重命名和终端 Enter 按键时自动刷新
  • 点击打开文件到编辑器
  • 通过右键菜单创建、重命名和删除文件及目录
  • 基于扩展名的文件类型图标,便于快速识别
  • 文件通过 SFTP 保存回远程服务器
  • 乐观 mtime 锁定 — 覆盖前,OxideTerm 检查远程文件的修改时间是否在加载后发生变化。如果发生变化,冲突对话框会出现,让你选择覆盖、重新加载远程版本或查看差异。
  • 未保存的更改在标签上以圆点标识
  • Ctrl+S / ⌘+S 保存

在标签页中打开多个文件,支持 LRU(最近最少使用)标签管理

  • 切换标签时不会丢失编辑器状态(光标位置、滚动位置、撤销历史)
  • 达到最大标签数时,最近最少使用的标签会自动关闭
  • 未保存的文件永远不会被自动关闭——它们受 LRU 逐出保护

为增强 IDE 功能,OxideTerm 可将约 1 MB 的 Rust 二进制文件部署到远程服务器。Agent 通过 SSH 通道上的 JSON-RPC 通信。

  • 更快的文件树操作 — 目录列表、文件搜索和符号解析在远程主机上原生运行
  • 实时文件监控 — 外部变更(来自其他编辑器或进程)立即反映
  • 符号搜索 — 跨项目查找定义和引用
  • 43 个 JSON-RPC 方法 — 全面的文件、目录和项目操作
  • 在 x86_64 和 aarch64 Linux 上启用 Agent 时自动部署
  • 10+ 架构可手动上传:ARMv7 (musleabihf)、i686、LoongArch64、PowerPC64LE、RISC-V64、s390x、x86_64-FreeBSD、aarch64-Android 等
  • Agent 二进制文件存储在远程服务器上,重连后仍然保留
  • 可从 IDE 面板一键删除

IDE 模式无需远程 Agent 即可完整工作。没有 Agent 时,文件树操作通过 SFTP 完成(稍慢),文件监控不可用。在大多数场景下,无 Agent 模式已足够使用。

IDE 模式与终端并行运行——在终端和编辑器标签之间无缝切换。通过连接池共享同一个 SSH 连接,无额外连接开销或认证提示。

IDE 模式参与重连协调器流水线:

  • 断连时,协调器快照打开的文件标签和项目路径
  • SSH 重连后,IDE 文件自动重新打开
  • 文件内容从远程服务器重新获取(而非过期缓存)
  • 用户意图检测:如果你在断连期间手动关闭了 IDE 或切换了项目,协调器尊重你的决定,不会强制重开

连接状态非 active 时,所有 IDE I/O 操作被阻断。重连期间编辑器变为只读,连接恢复后自动重新启用。