Sticky Scroll 是 vscode 中紧贴编辑器顶部的动态标题栏,随滚动自动显示当前光标所在作用域的完整嵌套路径(如 MyClass → render() → if (loading)),默认 1.84 启用,需开启设置并支持语言服务器。

VSCode 的 Sticky Scroll 功能能让你在滚动长文件时,始终看到当前代码块的顶层结构(比如类名、函数名),相当于给嵌套层级“钉”了个导航栏,不用来回拖动找上下文。
Sticky Scroll 是什么?
它不是侧边栏,也不是悬浮提示,而是紧贴编辑器顶部的一行固定标题栏,会随滚动自动更新,显示当前光标所在作用域的完整路径。比如你正在写一个 if 里的某行代码,它可能显示:MyClass → render() → useEffect() → if (loading)。
怎么开启和调优?
默认从 VSCode 1.84 开始启用,但部分主题或设置可能让它不明显。确认开启只需检查:
- 设置中搜索 sticky scroll,确保 Editor > Sticky Scroll: Enabled 已勾选
- 想多看几层?调整 Editor > Sticky Scroll: Max Layer count(默认 5,可设为 3–7)
- 觉得占地方?改小字体:在 settings.json 加上
"editor.stickyScroll.fontSize": 12
它和 Breadcrumbs 有啥区别?
Breadcrumbs 显示在编辑器顶部状态栏,只反映语言结构(如文件→类→方法),且不随滚动变化;Sticky Scroll 是动态的、上下文感知的,会精确到 if、for、try 这类代码块,对阅读逻辑流特别有用。两者可以共存,互不干扰。
哪些情况它会“失灵”?
目前主要依赖语言服务器支持。javaScript/typescript、python、Java、C# 等主流语言基本都 OK;但纯文本、jsON、markdown 或未配置好语言服务的文件,可能只显示文件名或完全不显示。如果函数没命名(比如箭头函数赋值给变量)、或用了非常规语法(如宏、模板字符串拼接函数名),也可能无法准确识别层级。
基本上就这些——不复杂但容易忽略,开起来就能立刻提升长文件阅读效率。