Lazygit + Delta¶
在 Ghostty 中运行 Lazygit,可以用左侧文件树选择修改文件,在右侧查看差异,并执行暂存、提交、拉取和推送。Lazygit 提供交互界面与 Git 操作,Delta 负责差异高亮;不需要 Ghostty 插件。
1. 安装¶
以下操作在 macOS 的 Ghostty 终端中执行,需已安装 Homebrew 和 Git。
brew install lazygit git-delta
lazygit --version
delta --version
两条版本命令都应输出版本号。本文配置依据 Lazygit v0.66.2 的官方文档;更新时运行 brew update,再运行 brew upgrade lazygit git-delta。
2. 配置左侧文件树与右侧差异¶
- 找到 Lazygit 实际使用的配置目录:
lazygit --print-config-dir
macOS 默认目录是 ~/Library/Application Support/lazygit,环境变量可能改变它,以命令输出为准。
- 创建或打开该目录中的
config.yml:
lazygit_config_dir="$(lazygit --print-config-dir)"
mkdir -p "$lazygit_config_dir"
touch "$lazygit_config_dir/config.yml"
open -t "$lazygit_config_dir/config.yml"
- 写入以下配置。如果文件已有内容,把这些字段合并到现有的
gui、git节点中,保留其他设置;不要重复添加顶层节点。若已有diffRenderers列表,将 Delta 条目放到首项,保留仍需使用的其他条目。
gui:
language: zh-CN
screenMode: half
enlargedSideViewLocation: left
showFileTree: true
mouseEvents: true
showCommandLog: false
git:
diffRenderers:
- command: delta --{{colorScheme}} --paging=never
screenMode: half使用等宽双栏,只展开当前面板及其内容;left让文件面板在左、差异在右。showFileTree启用目录树,mouseEvents启用鼠标操作,showCommandLog: false隐藏命令日志区域。language: zh-CN使用简体中文;{{colorScheme}}让 Delta 跟随终端深浅主题。--paging=never关闭 Delta 自身分页,由 Lazygit 管理滚动与按键。Lazygit 内不使用 Delta 的n、N区块导航。
此配置只接入 Lazygit;普通 git diff 的全局配置见 Delta。
3. 打开仓库并验证¶
先进入需要查看的 Git 仓库,例如:
cd "/Users/michael/Documents/java_demo"
git rev-parse --show-toplevel
lazygit
将示例目录替换为自己的仓库路径。第二条命令应输出仓库根目录;若提示不是 Git 仓库,先确认进入了正确目录。
关闭首次提示后按 2 聚焦“文件 / Files”。配置已设为 half,无需再按 +;此时应看到左侧修改文件树与右侧所选文件的差异。上下移动选择文件,检查差异是否有 Delta 高亮。没有本地修改时,文件面板为空属于正常情况。
4. 常用操作¶
下表中的文件操作以“文件 / Files”面板为上下文;同一按键在其他面板可能有不同作用。
| 按键 | 作用 |
|---|---|
2 |
回到文件面板 |
↑ / ↓ 或 k / j |
选择文件,右侧自动更新差异 |
Enter |
对目录展开或折叠;对文件进入全屏逐行操作视图 |
Esc |
退出差异视图或关闭当前弹窗 |
反引号(`) |
切换文件树与平铺列表 |
K / J 或 Ctrl+U / Ctrl+D |
向上 / 向下滚动右侧差异 |
| 空格 | 暂存或取消暂存选中的文件 |
c |
打开提交窗口,提交已暂存修改 |
p |
拉取当前分支的远程更新 |
P |
推送当前分支;尚未配置上游时按提示设置 |
+ / _ |
向后 / 向前切换 normal、half、full 布局 |
? |
查看当前上下文的快捷键 |
q |
退出 Lazygit |
仅查看差异时,选择文件即可,不需要按空格。按 Enter 进入逐行操作时,使用 Lazygit 原生差异显示,便于选择和暂存代码;按 Esc 返回文件树与 Delta 预览。提交前先检查暂存内容;p、P 分别会更新本地仓库和远程仓库。
5. 常见问题¶
命令不存在或配置键不识别¶
command -v lazygit
command -v delta
lazygit --version
delta --version
命令应能找到安装路径。如果新装后找不到,重新打开 Ghostty,并检查 Homebrew 的 shell 环境设置。配置键不识别时,核对已安装版本对应的官方文档;本文使用 v0.66.2 的 git.diffRenderers 配置。
配置没有生效¶
重新运行 lazygit --print-config-dir,确认编辑的是该目录中的 config.yml,保存后退出并重新启动 Lazygit。检查 LG_CONFIG_FILE 是否指定了其他文件,以及仓库的 .git/lazygit.yml 或父目录的 .lazygit.yml 是否覆盖了全局设置。
布局或快捷键与预期不同¶
按 2 回到 Files;若全屏只剩一个区域,按 _ 从 full 返回 half。+ 会继续切换到下一个布局,而不是固定进入 half。确保 Ghostty 窗口足够宽,并在普通 shell 中运行 Lazygit;若外层终端复用器或其他终端界面拦截按键,先退出该界面或检查其快捷键,再按 ? 核对 Lazygit 当前按键。
差异没有高亮¶
先确认 delta --version 成功,再检查配置缩进、git.diffRenderers 中的命令及可执行文件路径。存在多个渲染器时,按 | 切换到 Delta;不要把 Delta 自身分页器的快捷键当作 Lazygit 快捷键。