GitLens悬停提示需同时启用gitlens.hovers.enabled和gitlens.showCurrentLineBlame,支持调整时间格式与触发位置(content/lineNumbers/both),但不支持自定义字段、复制内容或API扩展。

GitLens 的悬停提示不支持完全自定义内容字段(比如加 commit body 或跳转链接),但可通过配置开关、格式和触发位置来控制它“显示什么”和“在哪显示”。
gitlens.hovers.enabled 和 gitlens.showCurrentLineBlame 必须为 true
这两个设置是悬停功能的总开关,缺一不可:
-
gitlens.hovers.enabled控制是否启用所有悬停(包括当前行、引用、分支等) -
gitlens.showCurrentLineBlame专管“鼠标停在代码行上时是否显示 blame 信息” - 哪怕只关了其中一个,悬停都会彻底消失;别被
editor.hover.enabled干扰——它只影响 TypeScript/Python 类型提示,对 GitLens 悬停无效
悬停时间格式能调,但 author/committer 时间语义不能切
默认显示的是 author date(作者本地提交时间),不是 committer date(合并或推送时间)。这常让人误以为“时间错了”,其实是 Git 本身行为:
-
gitlens.defaultDateFormat可设为"relative"(如 “2 days ago”)、"absolute"(如 “Oct 12, 2026”)或"iso8601"(如 “2026-10-12T14:30:00Z”) - 但它**不改变底层用的是 author 还是 committer 时间戳**;GitLens 底层调用的是
git blame,而git blame默认只输出 author 信息 - 想查 committer time?终端里跑
git blame -c --date=iso8601 <filename></filename>更准
悬停位置由 gitlens.hovers.currentLine.over 控制
默认悬停只在代码内容区域生效(即鼠标停在 console.log("hello") 这串文字上),但你可以改成在行号栏触发:
- 设
gitlens.hovers.currentLine.over为"lineNumbers"→ 悬停行号旁小字时就弹窗 - 设为
"content"(默认)→ 必须停在代码文本上才触发 - 设为
"both"→ 两者都响应,适合习惯看行号的人 - 注意:改完需重启 VSCode 或重载窗口(
Ctrl+Shift+P→Developer: Reload Window)才生效
悬停内容不可复制、不可选,也没 API 暴露给其他插件
这是 GitLens 明确的设计限制,不是 bug:
- 浮层里的作者名、时间、commit hash、消息摘要全部无法鼠标选中、右键复制
- 没有提供
onHover事件或可注入的渲染钩子,第三方插件无法扩展其内容 - 如果真需要可复制的 blame 信息,用命令
GitLens: Copy Blame Information(快捷键默认未绑定,可在键盘快捷方式里自定义)


















