Terminal Editor for the Digital age - 轻量级终端文本编辑器
TED 是一个现代化的终端文本编辑器,专为触控设备和传统终端设计。基于 Kilo 架构,使用 sp.h 单头文件库重新实现,增加了更多实用功能和更好的内存安全性。
- 🎬 赛博开机动画 - 低闪烁、短时长的像素数字雨启动
- 📝 双模式编辑 - Normal 模式 + Insert 模式(类似 Vim)
- 🔍 高级搜索 - 支持正向/反向搜索、循环查找、替换
- ↩️ 撤销/重做 - 完整的操作历史
- 🎯 语法高亮 - 支持 C、Python、JavaScript、Shell、Markdown
- 📋 剪贴板 - 文本选择、复制、剪切、粘贴
- ⌨️ 丰富快捷键 - Ctrl+S 保存、Ctrl+Z 撤销等
- 📱 触控友好 - 支持鼠标点击和拖动选择
- ✏️ 手势几何画布 - 鼠标手绘自动拟合直线、矩形、正方形、椭圆、圆
- 🧭 工作台式 TUI - 顶部三行控制带,带边框、按钮和状态胶囊
- 🌈 状态反馈 - 实时状态栏和操作提示
- C17 编译器 (gcc 或 clang)
- make
- sp.h 单头文件库(已包含在项目中)
git clone <repository-url>
cd ted
make
sudo make install# 默认安装路径
make install # /usr/local/bin(需要权限)或 ~/.local/bin
# 自定义路径
make install PREFIX=/your/path
# Termux 自动检测
# 在 Termux 中会自动安装到 /data/data/com.termux/files/usr/binsudo make uninstall在环境变量里配置,ted 启动时读取。
默认推荐本地直接试用 DeepSeek,只需要设置一个环境变量。
优先级如下:
TED_LLM_API_URL+TED_LLM_API_KEY(可选TED_LLM_MODEL)DEEPSEEK_API_KEY(可选DEEPSEEK_MODEL)KIMI_API_KEY
最短可用配置(推荐,直接试 DeepSeek):
export DEEPSEEK_API_KEY="你的key"
# 可选:默认是 deepseek-chat
export DEEPSEEK_MODEL="deepseek-chat"启动后可直接在 ted 里执行:
:llmstatus
:llm 用一句话总结当前文件
通用 OpenAI-compatible 配置:
export TED_LLM_API_URL="https://api.openai.com/v1/chat/completions"
export TED_LLM_API_KEY="你的key"
export TED_LLM_MODEL="gpt-4.1-mini"Kimi 示例:
export KIMI_API_KEY="你的key"# 打开或创建文件
ted filename.txt
# 启动时不指定文件(创建空缓冲)
ted| 操作 | 按键 |
|---|---|
| 进入编辑模式 | i (Normal 模式) |
| 保存文件 | Ctrl+S 或 :w |
| 退出 | Ctrl+Q 或 :q |
| 撤销 | Ctrl+Z |
| 重做 | Ctrl+Y |
| 搜索 | Ctrl+F 或 / |
| 跳转到行 | Ctrl+G |
| 删除行 | Ctrl+D |
| 切换顶部 UI 焦点 | Ctrl+T |
| 按键 | 功能 |
|---|---|
i / a / A |
进入 Insert 模式(i=光标处, a=后一个字符, A=行尾) |
: |
进入命令模式 |
/ |
进入搜索模式 |
g / G |
跳到文件开头/结尾 |
x |
删除字符 |
d |
删除行 |
y |
复制行 |
p |
粘贴 |
q |
退出 |
| 方向键 | 移动光标 |
Ctrl+T |
切换顶部工作台键盘焦点(Tab/Enter/方向键作用于 UI) |
| 按键 | 功能 |
|---|---|
Esc |
返回 Normal 模式 |
Ctrl+S |
保存 |
Ctrl+Q |
退出 |
Ctrl+Z / Ctrl+Y |
撤销/重做 |
Ctrl+D |
删除行 |
Ctrl+F |
搜索 |
Ctrl+G |
跳转到行 |
| 命令 | 功能 |
|---|---|
:w |
保存 |
:w filename |
另存为 |
:q |
退出 |
:q! |
强制退出(不保存) |
:wq |
保存并退出 |
:goto 10 |
跳到第10行 |
:set nu |
显示行号 |
:set nonu |
隐藏行号 |
:syntax on/off |
开启/关闭语法高亮 |
:syntax tree on/off/status/inspect/select/parent/prev/next |
控制 tree-sitter,查看、选中或跳转到光标附近 AST 节点 |
:llm prompt |
发送提示词(含上下文) |
:llmshow |
预览最近一次 LLM 结果 |
:llmcopy |
把最近一次 LLM 结果复制到剪贴板 |
:llmstatus |
查看 LLM 配置状态 |
:theme status |
查看当前 TUI 主题与可用主题 |
:theme cyber/amber/mono/next |
切换 libiui 工作台主题 |
:sketch auto |
打开草图模式并自动识别图形 |
:sketch line/rect/square/ellipse/circle |
强制拟合指定图形 |
:sketch clear |
清空画布 |
:sketch off |
退出草图模式 |
:js ted.sketchShapes() |
导出当前草图图形 JSON |
:recognizers |
查看已注册的 JS 图形识别器 |
:help |
显示帮助 |
本地 autoresearch 现在已经融合成仓库内的“编辑器自优化模块”。可先运行 make autoresearch-module 查看当前协议入口,再运行 make autoresearch-focus 查看下一轮优先主题,运行 make autoresearch-next 生成下一轮执行 brief,或运行 make autoresearch-status 查看当前 metric、worktree 安全状态、上一轮结果和下一轮建议。
如果要专门拉升 TUI 产品感,先跑 make tui-beauty-metric,再执行 make autoresearch-loop ARGS='-n 3 --resume-last'。
TED 已支持 JS 插件自动加载:
~/.ted/plugins/*.js~/.ted/plugins/lang/*.js
仓库内提供了一组可直接安装的示例插件(plugins/),可执行:
make plugins-install如果你在当前机器已积累 ~/.ted/plugins,想同步回仓库并再安装到本机(便于多端对齐):
make plugins-align等价命令:
sh scripts/sync-plugins-from-home.sh
sh scripts/install-plugins.sh安装后在编辑器里执行 :plugins 可重载并查看已加载插件。
详细开发说明见 docs/js-module-dev-guide.md。
Shift+方向键- 选择文本Ctrl+C- 复制选中内容Ctrl+X- 剪切选中内容Ctrl+V- 粘贴- 鼠标拖动 - 选择文本(支持 xterm 的终端)
ted/
├── src/
│ ├── main.c # 入口
│ ├── editor.c # 核心逻辑
│ ├── buffer.c # 文本缓冲区
│ ├── display.c # 渲染引擎
│ ├── input.c # 输入处理
│ ├── syntax.c # 语法高亮
│ ├── search.c # 搜索功能
│ ├── command.c # 命令解析
│ ├── undo.c # 撤销/重做
├── include/
│ └── sp.h # 单头文件标准库
├── Makefile
└── README.md
- 更多语言语法高亮 (Rust, Go, Java)
- 配置文件支持 (~/.tedrc)
- 鼠标支持优化
- 增量渲染(只重绘修改的行)
- 大文件优化(虚拟滚动)
- 多文件/标签页支持
- LSP 支持(代码补全、诊断)
- Git 集成(修改标记)
- 插件系统
MIT License - 详见 LICENSE 文件
💡 提示: TED 是 Kilo 的工程化改进版本,增加了实用功能和安全保障。如果你想学习编辑器原理,建议先阅读 Kilo 源码;如果你需要一个日常使用的轻量级编辑器,TED 是更好的选择。