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 逐出保护
远程 Agent(可选)
Section titled “远程 Agent(可选)”为增强 IDE 功能,用户在确认框中选择启用 Agent 后,OxideTerm 可将内置的 Linux x86_64 或 aarch64 Rust 二进制文件部署到远程服务器。Agent 作为远程进程运行在现有 SSH 会话中,通过按行编码的请求与响应交换数据,不会监听额外网络端口。
Agent 提供的功能
Section titled “Agent 提供的功能”- 更快的文件树操作 — 目录列表、文件搜索和符号解析在远程主机上原生运行
- 实时文件监控 — 外部变更(来自其他编辑器或进程)立即反映
- 符号搜索 — 跨项目查找定义和引用
- 受版本约束的请求协议 — 提供文件、目录、Git、监控和符号相关操作
- 在 x86_64 和 aarch64 Linux 上,确认启用 Agent 后可一键部署
- 其他架构需要自行从源码构建 Agent,再手动上传到远程主机
- Agent 二进制文件存储在远程服务器上,重连后仍然保留
- 可从 IDE 面板一键删除
无 Agent 模式
Section titled “无 Agent 模式”IDE 模式无需远程 Agent 即可浏览和编辑文件。没有 Agent 时,文件树和读写操作通过 SFTP 完成,实时文件监控、符号索引等 Agent 功能不可用。
IDE 模式与终端并行运行——在终端和编辑器标签之间无缝切换。通过连接池共享同一个 SSH 连接,无额外连接开销或认证提示。
IDE 与终端、SFTP、端口转发共享节点身份。SSH 重连替换底层连接后,IDE 可以重新取得远程文件系统会话,保持项目路径与可见节点的关联。
打开的编辑缓冲区和未保存状态保留在本地工作区。节点不可用时暂停远程 I/O;只有取得有效的远程文件系统会话后才恢复读写。
文件大小、编码与换行
Section titled “文件大小、编码与换行”IDE 使用独立的 100 MiB 文件编辑上限,不再依赖 SFTP 预览上限。Agent 和 SFTP 两种编辑后端都适用。
打开文件时识别编码、字节顺序标记(BOM)和换行格式。编辑器内部统一使用 LF,包括粘贴的文本;保存时按选定的编码、BOM 和 LF/CRLF/CR 格式写回。现有状态栏提供编码与换行入口,可以查看检测结果、按指定编码重新打开,或更改后续保存格式。
按指定编码重新打开会从磁盘重新读取文件,操作前应处理未保存的修改。