VSCode行号默认开启但可能被覆盖,通过editor.lineNumbers控制,值为"on"/"off"/"relative"/"interval";常见失效原因包括工作区设置覆盖或扩展冲突,且必须用合法字符串值。

VSCode 怎么打开行号显示
默认开启,但可能被手动关闭或受用户设置覆盖。行号开关由 editor.lineNumbers 控制,值为 "on"(始终显示)、"off"(从不显示)、"relative"(显示相对行号)或 "interval"(隔行显示,仅部分主题支持)。
- 最快速方法:按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置,搜索line numbers,将Editor > Line Numbers设为on - 手动编辑
settings.json:添加或修改"editor.lineNumbers": "on" - 临时切换:右键编辑器空白处 → 选择
Toggle Line Numbers(仅当前窗口生效,不保存)
为什么改了 settings.json 还不显示行号
常见原因是工作区设置(.vscode/settings.json)覆盖了用户设置,或扩展(如某些主题、代码格式化插件)强制重置了该选项。
- 检查优先级:依次查看「Workspace」标签页的设置是否显式设为
"off" - 确认没有扩展注入冲突配置:禁用最近安装的 UI 类扩展(如
Bracket Pair Colorizer旧版、One Dark Pro某些变体),再重启 VSCode -
editor.lineNumbers是字符串类型,写成true或1会导致失效,必须是"on"等合法字符串值
relative 行号模式的实际用途
"relative" 模式下,当前光标所在行为 0,上下行分别显示正负偏移量,对键盘跳转(如 Ctrl+G 输入 +3)和 Vim 模式移动特别友好。
- Vim 扩展用户建议设为
"relative",配合j/k和数字前缀更高效 - 与
"on"可共存:启用editor.relativeLineNumbers(布尔值)即可在"on"基础上叠加相对数,但需主题支持渲染双行号(如默认Dark+支持,GitHub Dark需更新到 v2.0+) - 注意:
"relative"模式下,跳转到文件首/尾行时,相对数可能为大负数/正数,不直观——这不是 bug,是设计行为
{
"editor.lineNumbers": "on",
"editor.relativeLineNumbers": true,
"editor.cursorSmoothCaretAnimation": "on"
}
行号看似简单,但 relative 模式和工作区覆盖这两点,最容易在协作项目或换电脑后突然“消失”。










