跳转到内容

IDE 模式

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

编辑器由 Rust 与 GPUI 实现,并使用 tree-sitter 提供结构化语法能力,支持:

  • 36 种语言的语法高亮
  • 行号和代码折叠
  • 支持正则表达式的查找和替换
  • 括号匹配和自动闭合
  • 缩进参考线
  • 自动换行与原生选择、复制和撤销操作

当前 tree-sitter 语法包括 Bash、C/C++、C#、CMake、CSS、Diff、Dockerfile、Elixir、Fish、Go、HTML、Java、JavaScript/TypeScript/TSX、JSON、Lisp、Lua、Make、Markdown、Objective-C、Perl、PHP、PowerShell、Python、R、Ruby、Rust、Scala、SQL、Swift、TOML、YAML、Zsh 和 Zig。

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

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

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

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

为增强 IDE 功能,用户在确认框中选择启用 Agent 后,OxideTerm 可将内置的 Linux x86_64aarch64 Rust 二进制文件部署到远程服务器。Agent 作为远程进程运行在现有 SSH 会话中,通过按行编码的请求与响应交换数据,不会监听额外网络端口。

  • 更快的文件树操作 — 目录列表、文件搜索和符号解析在远程主机上原生运行
  • 实时文件监控 — 外部变更(来自其他编辑器或进程)立即反映
  • 符号搜索 — 跨项目查找定义和引用
  • 受版本约束的请求协议 — 提供文件、目录、Git、监控和符号相关操作
  • 在 x86_64 和 aarch64 Linux 上,确认启用 Agent 后可一键部署
  • 其他架构需要自行从源码构建 Agent,再手动上传到远程主机
  • Agent 二进制文件存储在远程服务器上,重连后仍然保留
  • 可从 IDE 面板一键删除

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

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

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

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

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