9个版本

新增 0.3.1 2024年8月15日
0.3.0 2024年8月15日
0.2.1 2024年6月20日
0.1.4 2024年5月29日

#5 in #git-diff

每月34次下载

Apache-2.0

190KB
4.5K SLoC

lazyjj

TUI for Jujutsu/jj. 使用Rust和Ratatui构建。与jj CLI交互。

https://github.com/Cretezy/lazyjj/assets/2672503/b5e6b4f1-ebdb-448f-af9e-361e86f0c148

特性

  • 日志
    • 通过侧边栏查看jj日志和变更详情
    • 使用n从选定的变更创建新变更
    • 使用e编辑变更
    • 使用d描述变更
    • 使用a放弃变更
    • 使用p在颜色词和git diff之间切换
    • 使用r查看不同的revset
    • 使用b将分支设置为选定的变更
    • 使用f/p获取/推送
  • 文件
    • 在侧边栏中查看当前变更的文件和差异
    • 使用Enter从日志选项卡查看变更的文件
    • 查看当前变更的冲突列表
    • 使用w在颜色词和git diff之间切换
  • 分支
    • 使用a查看所有分支列表,包括远程分支
    • 使用c创建,使用r重命名,使用d删除,使用f忘记
    • 使用t跟踪分支,使用T取消跟踪分支
  • 命令日志:查看lazyjj执行的每个命令
  • 配置:使用jj配置配置lazyjj
  • 帮助:使用h/?查看所有按键映射

设置

请确保首先安装了jj

  • 使用cargo binstall: cargo binstall lazyjj
  • 使用cargo install: cargo install lazyjj(可能需要一些时间来编译)
  • 使用预构建的二进制文件:查看发布
  • 对于Arch Linux: pacman -S lazyjj

要构建和安装预发布版本: cargo install --git https://github.com/Cretezy/lazyjj.git --locked

配置

您可以通过jj配置文件选择性地配置以下选项

  • lazyjj.higlight-color:更改高亮颜色。可以使用命名颜色。默认为 #323264
  • lazyjj.diff-format:更改默认的diff格式。可以是 color-wordsgit。默认为 color_words
    • 如果 lazyjj.diff-format 未设置但 ui.diff.format 已设置,则后者将被使用
  • lazyjj.branch-prefix:更改生成的分支名称的前缀。默认为 push-
    • 如果 lazyjj.branch-prefix 未设置但 git.push-branch-prefix 已设置,则后者将被使用

示例: jj config set --user lazyjj.diff-format "color-words"(存储在 用户配置文件,也支持仓库配置)

用法

在当前目录的仓库中启动lazyjj: lazyjj

要使用不同的仓库: lazyjj --path ~/path/to/repo

键映射

使用 h? 查看当前选项卡的键映射。

基本导航

  • 使用 q 退出
  • 使用 1/2/3 切换标签页
  • 在左侧面板中滚动
    • 使用 j/k 或上下箭头向下/向上滚动一行
    • 使用 J/K 或上下箭头向下/向上滚动半页
  • 在右侧面板中滚动
    • 使用 Ctrl+e/Ctrl+y 向下/向上滚动一行
    • 使用 Ctrl+d/Ctrl+u 向下/向上滚动半页
    • 使用 Ctrl+f/Ctrl+b 向下/向上滚动一页

日志标签

  • 使用 @ 选择当前更改
  • 使用 Enter 在文件标签中查看更改文件
  • 使用 rjj log -r)显示不同的revset
  • 使用 w 在右侧面板的diff格式之间切换颜色单词(默认)和Git
  • 使用 W 切换右侧面板环绕。
  • 在突出显示的更改后创建新更改,使用 njj new)。
    • 使用 N 创建新更改并描述 (jj new -m)。
  • 编辑突出显示的更改 ejj edit)。
  • 使用 a 放弃更改 (jj abandon)。
  • 使用 d 描述突出显示的更改 (jj describe)。
    • 使用 Ctrl+s 保存。
    • 使用 Esc 取消。
  • 使用 b 将分支设置到突出显示的更改 (jj branch set)。
    • 使用 j/k 在分支列表中滚动。
    • 使用 c 创建新分支。
    • 使用自动生成的名称 g
  • 使用 f 进行 Git fetch (jj git fetch)。
    • 使用 F 进行 Git fetch 所有远程仓库 (jj git fetch --all-remotes)。
  • 使用 p 进行 Git push (jj git push)。
    • 使用 P push 所有分支 (jj git push --all)。

文件标签页

  • 使用 @ 选择当前更改
  • 使用 w 在右侧面板的diff格式之间切换颜色单词(默认)和Git
  • 使用 W 切换右侧面板环绕。

分支标签页

  • 使用 a 显示所有远程的分支 (jj branch list --all)。
  • 使用 c 创建分支 (jj branch create)。
  • 使用 r 重命名分支 (jj branch rename)。
  • 使用 d 删除分支 (jj branch delete)。
  • 使用 f 忘记分支 (jj branch forget)。
  • 使用 t 跟踪分支(仅适用于具有远程的分支) (jj branch track)。
  • 使用 T 取消跟踪分支(仅适用于具有远程的分支) (jj branch untrack)。
  • 使用 w 在右侧面板的diff格式之间切换颜色单词(默认)和Git
  • 使用 W 切换右侧面板环绕。
  • 在突出显示的分支的更改后创建新更改,使用 njj new)。
    • 使用 N 创建新更改并描述 (jj new -m)。

命令日志标签页

  • 使用 @ 选择最新命令。
  • 使用 W 切换右侧面板环绕。

依赖项

~13–21MB
~269K SLoC