应使用语法专属设置:打开.md或.json文件,Preferences → Settings – Syntax Specific,在右侧添加"line_numbers": false并保存,该设置优先级高于全局配置,仅影响对应语法文件。

怎么给 Markdown/JSON 等文件单独关掉行号
全局开行号但某些文件(比如 .md、.json、.yml)不想看行号?不能直接改用户设置,得用「语法专属设置」——它优先级高于全局配置,且只影响当前语法类型。
操作很简单:
- 先打开一个
.md文件(或任意你想关行号的文件) - 右键文件标签 → Settings – Syntax Specific
- 在右侧 JSON 中添加:
"line_numbers": false - 如果已有其他配置(比如
"word_wrap": true),记得前面加逗号分隔 - 保存,行号立刻消失;关闭再重开,依然生效
为什么改了用户设置里的 line_numbers 没用
因为语法专属设置会完全覆盖全局设置。哪怕你用户配置里写的是 "line_numbers": true,只要 Packages/User/Markdown.sublime-settings 里存在 "line_numbers": false,那所有 Markdown 文件就一定不显示行号。
常见踩坑点:
- 拼错成
line_number(少个s)→ 配置无效,Sublime 直接忽略 - 该文件夹下有多个同名设置文件(如
Markdown.sublime-settings和Markdown (Standard).sublime-settings)→ 实际生效的是被选中的语法对应的那个 - JSON 格式错误(比如末尾多逗号、引号不匹配)→ 整个文件解析失败,Sublime 回退到默认行为(可能表现为没行号也没报错)
怎么验证是不是语法设置在起作用
最直接的办法:临时删掉语法专属设置文件。
步骤:
- 打开 Sublime → Preferences → Browse Packages…
- 进入
User/目录,找Markdown.sublime-settings这类文件 - 把它重命名或移走(比如改成
Markdown.sublime-settings.bak) - 重新打开一个
.md文件,看行号是否回来了
如果回来了,说明就是这个文件在控制;如果没回来,再查主题是否隐藏了 gutter 区域(比如 ayu 主题默认不画 gutter 边框,看起来像没行号)。
想让某类文件默认不显示行号,但又保留快捷键切换能力
可以。语法专属设置只管默认状态,不影响快捷键 Ctrl+L(Windows/Linux)或 Cmd+L(macOS)的临时开关功能。
也就是说:
-
"line_numbers": false在Markdown.sublime-settings中 → 所有.md文件打开即无行号 - 按
Ctrl+L→ 当前视图立刻显示行号(仅本次有效) - 关掉文件再重开 → 又回到无行号状态
真正容易被忽略的是:语法专属设置一旦存在,它就彻底接管了该语法的所有行号行为——不是“叠加”,是“覆盖”。删配置比调参数更可靠。











