Skip to content

aresbit/ted

Repository files navigation

TED Editor

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/bin

卸载

sudo make uninstall

LLM 环境变量配置

在环境变量里配置,ted 启动时读取。

默认推荐本地直接试用 DeepSeek,只需要设置一个环境变量。

优先级如下:

  1. TED_LLM_API_URL + TED_LLM_API_KEY(可选 TED_LLM_MODEL
  2. DEEPSEEK_API_KEY(可选 DEEPSEEK_MODEL
  3. 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

🎮 操作指南

Normal 模式(默认)

按键 功能
i / a / A 进入 Insert 模式(i=光标处, a=后一个字符, A=行尾)
: 进入命令模式
/ 进入搜索模式
g / G 跳到文件开头/结尾
x 删除字符
d 删除行
y 复制行
p 粘贴
q 退出
方向键 移动光标
Ctrl+T 切换顶部工作台键盘焦点(Tab/Enter/方向键作用于 UI)

Insert 模式

按键 功能
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'

插件系统(Runtime Dock)

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 集成(修改标记)
  • 插件系统

📚 参考

  • 基于 Kilo 编辑器架构
  • 使用 sp.h 单头文件 C 库

📄 许可证

MIT License - 详见 LICENSE 文件


💡 提示: TED 是 Kilo 的工程化改进版本,增加了实用功能和安全保障。如果你想学习编辑器原理,建议先阅读 Kilo 源码;如果你需要一个日常使用的轻量级编辑器,TED 是更好的选择。

About

terminal editor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages