行号未显示大概率是editor.linenumbers被设为"off"或被工作区配置覆盖;应按ctrl+,搜索line numbers并设为"on"/"relative"/"interval",注意值必须为合法字符串且检查工作区设置。

行号没显示,大概率不是 VSCode 坏了,而是 editor.lineNumbers 被设成了 "off",或者被工作区配置悄悄覆盖了——改对值、看对位置,立刻就能恢复。
怎么快速打开或切换行号模式
最稳的操作是快捷键进设置:按 Ctrl + ,(Windows/Linux)或 Cmd + ,(macOS),在搜索框输入 line numbers,找到 Editor: Line Numbers 项,从下拉菜单选 on、relative、off 或 interval 即可。改完立即生效,不用关文件、不用重载窗口。
- 临时开关当前编辑器的行号(不保存):右键编辑器左侧空白区域 → 点击
Toggle Line Numbers -
on:显示绝对行号(1, 2, 3…),适合调试、Git blame、Code Review -
relative:光标所在行为 0,上下行分别是 ±1、±2…,对 Vim 模式跳转(如5j、12k)极友好 -
interval:只在部分主题下可见,实际用途有限,大日志查看时偶尔用得上
为什么改了 settings.json 还不显示行号
常见原因就三个,且 VSCode 不报错,只会静默忽略:
-
editor.lineNumbers的值写成了true、"true"、1或漏掉引号——它只认"on"、"off"、"relative"、"interval"这四个字符串 - 工作区配置(
.vscode/settings.json)覆盖了用户设置;打开命令面板(Ctrl + Shift + P),执行Preferences: Open Workspace Settings (JSON),检查里面有没有冲突的editor.lineNumbers字段 - 字段名拼错,比如写成
editor.lineNumber(少个s)或line_numbers(VSCode 不支持下划线命名)
relative 模式下数字“跳变”是不是 bug
不是 bug,是设计行为。相对行号基于当前光标位置实时计算,一旦发生代码折叠/展开、插入/删除空行,下方所有行的相对值都会重算。
- 比如光标在第 50 行,折叠一个 10 行的函数后,原来第 60 行变成第 51 行,相对值就从
10变成1 - 这对
8j、3k是优势,但如果你依赖固定偏移做批量操作(比如正则替换某几行),就得切回"on"模式 - 别同时写
"editor.lineNumbers": "relative"和"editor.relativeLineNumbers": true——后者是旧版 Vim 插件用的弃用字段,混用可能引发冲突
Terminal / Git 视图里为什么没行号
editor.lineNumbers 只控制主编辑器区域,对终端(Terminal)、Git 差异视图(Git: Show Changes)、搜索结果(Find in Files)等面板完全无效。
- 终端里需要行号?用
cat -n file.js或less -N file.js - Git 差异里想定位?直接点左侧变更块,光标会自动跳到对应行——行号虽不显示,定位逻辑照常工作
- 真正容易被忽略的是工作区优先级和字符串合法性:你改的
settings.json可能根本没被读到,或者值写对了但格式错了,VSCode 就当它不存在











