jj_tui:专注于速度和清晰度的jujutsu终端用户界面
摘要
jj_tui 是为 Jujutsu 版本控制系统设计的快速直观的终端用户界面,专注于性能以及实时图形预览等交互功能。
<p><a href="https://lobste.rs/s/fg3sgh/jj_tui_terminal_user_interface_jujutsu">评论</a></p>
查看缓存全文
缓存时间: 2026/06/30 09:36
# elidowling.com/jj_tui
来源:https://tangled.org/elidowling.com/jj_tui
## Jujutsu TUI\# (https://tangled.org/elidowling.com/jj_tui#jujutsu-tui)
nix (https://github.com/faldor20/jj_tui/actions/workflows/build-nix.yml)
一个为 Jujutsu 版本控制系统打造的 TUI。我们的重点在于:
- **性能**:jj_tui 启动迅速,绝不拖慢你的工作流程,浏览提交和文件时应该感觉非常流畅。
- **直观**:快捷键易于记忆,能快速形成肌肉记忆,无需多余弹窗。
- **交互性**:jj_tui 完全重新实现了 jj 的渲染器,让你在规划变基效果时,能实时预览图谱(试试`r`ebase`p`review 功能吧!)
jj_tui-ezgif com-optimize
按`?`显示帮助(图谱视图和文件视图的命令不同)。`方向键`或`hjkl`导航窗口/项目,`空格`选择/取消选择修订(图谱视图下可多选),`回车`展开差异并滚动浏览。
## 主要功能\# (https://tangled.org/elidowling.com/jj_tui#key-features)
### 常规 jj 操作\# (https://tangled.org/elidowling.com/jj_tui#normal-jj-operations)
- `c` 提交
- `r` 变基
- `g` Git 推送和拉取
- 添加、移动和删除`b`书签
- `s` 压缩和拆分提交
- `空格` 选择多个提交进行复制、变基等操作,或在其上开始`n`新提交
### 从文件视图创建提交:\# (https://tangled.org/elidowling.com/jj_tui#creating-commits-from-the-file-view)
- `空格` 选择文件,以便单独`c`提交或将文件`m`移动到不同提交
- 文件可以发送到`N`下一个或`P`上一个提交
### 按 revsets 筛选\# (https://tangled.org/elidowling.com/jj_tui#filtering-by-revsets)
- `f` 按任意 revset 筛选
图谱命令列表:
jj_tui commands
## 安装\# (https://tangled.org/elidowling.com/jj_tui#installing)
`linux`:获取最新版本,静态链接,适用于任何 Linux 机器。`mac`:获取预构建版本。如有问题请告知,我无法在 Mac 上测试。
要在 nix 上打开带有 jj_tui 的 shell:`nix shell github:faldor20/jj\_tui`
## 依赖\# (https://tangled.org/elidowling.com/jj_tui#dependencies)
Jujutsu CLI(最低版本 0.30.0)。我尚未在 Windows 或 Mac 上测试,相信它无法在 Unix 以外的环境运行,因此 Windows 用户目前需要使用 WSL。
## 配置文件:\# (https://tangled.org/elidowling.com/jj_tui#config-file)
你可以在以下目录创建`config.yaml`配置文件来自定义按键输入:
`linux`:$XDG\_CONFIG\_HOME/jj\_tui/
`macos`:~/Library/preferences/jj\_tui/
请参阅`./jj\_tui/lib/key\_map.ml`了解键位规范,以及`./jj\_tui/lib/config.ml`了解配置说明。
按键配置可让你完全自定义所有命令及其子菜单,并可重新映射方向键。
例如:
``
key_map:
remap:
h: "left"
j: "down"
k: "up"
l: "right"
graph:
# 从按键到命令 ID 的简单映射
p: prev
# 命令子菜单
s:
title: "Squash"
sub:
# 子菜单命令
s: "squash_into_parent"
# 如果终端宽度小于此值,UI 将切换为单面板视图
single_pane_width_threshold: 110
# 设置 jj_tui 最大渲染的提交数量,防止查看 'all()' revset 时速度过慢
max_commits: 100
``
完整的命令 ID 列表请参见`jj\_tui/bin/graph\_commands.ml` (https://tangled.org/elidowling.com/jj_tui/tree/main/jj_tui/bin/graph_commands.ml)和`jj\_tui/bin/file\_commands.ml` (https://tangled.org/elidowling.com/jj_tui/tree/main/jj_tui/bin/file_commands.ml)
## 日志:\# (https://tangled.org/elidowling.com/jj_tui#logs)
`linux`:$XDG\_STATE\_HOME/jj\_tui/
`macos`:~/Library/logs/jj\_tui/
## 开发\# (https://tangled.org/elidowling.com/jj_tui#dev)
可以使用 nix 构建:`nix build`,或者通过 `nix develop` 打开 nix shell。
注意:如果使用 nix 开发 shell,并希望使用 dune 构建,请使用 `dune build --pkg disabled` 以使用 nix 提供的依赖项。
也可以通过 Dune 包管理直接构建:`dune build`。
相似文章
jujutsu v0.42.0 发布
Jujutsu (jj) 版本控制系统发布了 v0.42.0。Jujutsu 是一款开源 VCS,以 Git 作为存储后端,同时提供更符合人体工程学的操作界面,其功能设计灵感来源于 Mercurial、Sapling 和 Darcs。
Evan的Jujutsu教程
面向熟悉Git的用户,关于版本控制系统Jujutsu (jj)的简明教程。
JusTTY
JusTTY是一个使用Swift和libghostty构建的简单原生macOS终端。
jj v0.41.0 发布
Jujutsu (jj) v0.41.0 已发布,这款实验性版本控制系统迎来了更新,旨在提升易用性和冲突处理能力。
tterm
tterm 是一款集终端、真实浏览器和 Claude Code 于单一界面的产品,提供集成开发环境。