TTT Editor 是一款在终端中运行的、功能完整的代码编辑器,旨在成为 VS Code、Zed 和 Sublime Text 的替代品。它提供了图形化界面般的体验(如鼠标支持、侧边栏、标签页),但完全运行于终端环境。它采用 Go 语言编写,是一个单一二进制文件,零配置即可启动

本教程将指导你通过多种方式完成 TTT 的安装、配置和运行。


📦 第一步:选择你的安装方式

TTT 支持多种安装方式,请根据你的操作系统和使用习惯选择最合适的一种。

1.1 macOS (Homebrew)

1
2
brew tap eugenioenko/ttt
brew install ttt

1.2 Linux (安装脚本)

1
2
3
4
5
# 默认安装到 /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/eugenioenko/ttt/main/install.sh | sh

# 安装到自定义目录(例如 ~/.local/bin)
INSTALL_DIR=~/.local/bin curl -sSfL https://raw.githubusercontent.com/eugenioenko/ttt/main/install.sh | sh

1.3 Arch Linux (AUR)

1
2
yay -S ttt
# 或使用其他 AUR 助手

1.4 NixOS

1
2
3
4
5
6
7
8
# 临时体验,无需安装
nix run github:eugenioenko/ttt

# 或在 flake.nix 中添加为输入
{
inputs.ttt.url = "github:eugenioenko/ttt";
# 然后添加到 environment.systemPackages
}

1.5 使用 Go 安装 (Go 1.18+)

1
go install github.com/eugenioenko/ttt/cmd/ttt@latest

确保 $GOPATH/bin(默认 ~/go/bin)在你的 PATH 环境变量中。

1.6 直接下载预编译二进制文件

访问 Releases 页面,下载适用于你平台(Linux、macOS、Windows)的二进制文件,将其设置为可执行文件,并放入 PATH 目录。

1.7 从源码编译(开发版)

1
2
3
git clone https://github.com/eugenioenko/ttt.git
cd ttt
make build

编译后的优化二进制文件位于 bin/ttt,你可以将其复制到方便的位置:

1
cp bin/ttt ~/.local/bin/

🚀 第二步:启动与基本使用

2.1 快速启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 打开当前目录作为工作区
ttt

# 打开指定目录
ttt /path/to/your/project

# 打开单个文件(不作为工作区)
ttt /path/to/file.go

# 打开文件并跳转到指定行和列
ttt /path/to/file.go:42:5

# 打开多个文件夹作为多根工作区
ttt dir1 dir2

2.2 核心界面导航

  • 侧边栏:通过快捷键或鼠标点击切换不同面板。
    • Ctrl+K E - 文件浏览器
    • Ctrl+K F - 搜索面板 (依赖 ripgrep)
    • Ctrl+K C - Git 变更面板
    • 命令面板中输入 Outline - 符号大纲
  • 底部面板Ctrl+K B 切换。
    • 终端Ctrl+T 切换,Alt+T 全屏,Ctrl+K T 新建终端标签页。
    • 问题:显示 LSP 诊断信息。
  • 命令面板Ctrl+P 打开,可执行所有命令。
  • 标签页管理
    • Ctrl+W 关闭当前标签页。
    • Alt+. / Alt+, 切换到下一个/上一个标签页。
    • 点击已打开的标签页可固定它。

⚙️ 第三步:配置与定制

TTT 的配置文件位于 ~/.config/ttt/ 目录下。

3.1 核心配置文件

  • settings.json:编辑器设置(如 tabSize, wordWrap, theme 等)。
  • keybindings.json:自定义快捷键(使用 VS Code 风格的键位格式)。
  • themes/\*.json:自定义颜色主题。

3.2 图形化设置

大多数设置可以通过图形界面修改:View → Settings (Ctrl+K ,) 打开设置表单,修改后点击 Apply 应用。部分设置(标记为 restart)需要重启编辑器生效。

3.3 主题切换

TTT 内置了 10 种主题(如 One Dark, Solarized Dark)。通过 View → Switch Theme 或命令面板实时切换。要自定义主题,可将内置主题文件复制到 ~/.config/ttt/themes/ 目录下修改,并在 settings.json 中指定 "theme": "你的主题文件名"


🔌 第四步:扩展功能(插件与 LSP)

TTT 通过 Lua 插件系统扩展功能,并内置了对语言服务器协议(LSP)的支持。

4.1 安装与使用插件

  1. 打开插件面板:在侧边栏或命令面板中找到 Plugins 面板。
  2. 浏览与安装:从社区注册表浏览插件,或使用 Plugins: Install from URL 从 Git 仓库安装。
  3. 管理插件:在已安装列表中可以启用/禁用、更新或卸载插件。
  4. 关键插件
    • 编辑器模式Vim ModeEmacs Mode
    • 语言支持lsp-go (Go), lsp-python (Python), lsp-typescript (TypeScript/JavaScript) 等,安装插件时会引导你安装对应的语言服务器二进制文件。
    • 工具集成formatter-prettier, docker-manager, todo-scanner 等。

4.2 配置 LSP

  • LSP 插件安装后,通常会自动启动对应的语言服务器。
  • 状态栏中的语言段会显示服务器状态: 已连接, 启动中, 失败。点击可打开 OUTPUT 面板查看日志。
  • 可手动在 ~/.config/ttt/settings.json 中自定义 LSP 服务器配置或完全禁用 ("lsp": { "enabled": false })。

🩺 第五步:自动化与测试(--exec 模式)

TTT 提供了强大的脚本化交互能力,非常适合自动化测试或 AI 代理驱动。

5.1 基本用法

--exec 参数允许你启动时自动执行一系列命令:

1
2
# 等待界面加载,截图,保存调试信息,然后退出
ttt --size 120x40 --exec "wait-for Explore; screenshot /tmp/screen.txt; debug /tmp/state.json; quit"

5.2 常用 --exec 命令

  • click X Y - 模拟鼠标点击屏幕坐标。
  • key COMBO - 模拟按键,例如 key ctrl+p
  • type TEXT - 逐字输入文本。
  • exec "Command Name" - 执行命令面板中的命令。
  • wait-for TEXT [timeout=MS] - 等待屏幕上出现特定文本。
  • screenshot PATH / debug PATH - 保存屏幕截图或编辑器调试状态。

5.3 远程控制 (--listen)

启动一个 HTTP 服务,用于远程发送命令:

1
2
ttt --listen &
curl -X POST --data "type hello; wait-for hello; screenshot /tmp/screen.txt" http://127.0.0.1:4242/exec

📋 常见问题与前提条件

  • 必要依赖
    • git - 用于 Git 集成功能。
    • ripgrep (rg) - 用于工作区搜索功能。请确保它在你的 PATH 中。
  • 构建依赖:从源码构建需要 Go 1.18 或更高版本。
  • 鼠标支持:确保你的终端模拟器(如 iTerm2, Windows Terminal, GNOME Terminal)支持鼠标事件。

现在,你已经完成了 TTT Editor 的部署。你可以将它作为一个日常编辑器使用,也可以利用其强大的自动化能力进行脚本测试或与 AI 代理集成。