editor.rulers是唯一控制列对齐线的配置项,必须设为正整数数组(如[80,120]),填字符串或负数将静默失效;它仅按字符列数显示静态竖线,纯属视觉提示,与缩进逻辑、语法结构无关。

editor.rulers 是唯一控制列对齐线的配置项
VSCode 里所谓“垂直列对齐线”,就是按固定列数画的静态竖线,只起长度提示作用,和缩进逻辑、语法结构完全无关。它不随代码块移动,也不识别 Tab 或空格差异,纯属视觉标尺。
真正生效的只有 editor.rulers 这一个配置项。其他名字如 showRulers、columnGuides、alignLines 都不存在,写了也静默忽略。
-
editor.rulers必须是数字数组,例如[80, 120];填字符串(如["80"])或负数(如[-80])会导致整个配置失效,VSCode 不报错但不渲染任何线 - 默认值为空数组
[],即不显示任何线;设为[100]就会在第 100 列画一条竖线 - 语言专属配置才生效:在
.vscode/settings.json中写"[javascript]": { "editor.rulers": [100] },只对.js文件起作用;全局配置则写在用户或工作区根settings.json的顶层 - 改完保存即生效,但若之前因格式错误被忽略,修正后建议重载窗口(
Ctrl+Shift+P→Developer: Reload Window)确保加载新配置
别把 editor.guides.indentation 当成列对齐线
很多人搜“垂直对齐线”却误开了 editor.guides.indentation,结果发现线不随列固定、反而跟着缩进层级跳——那是缩进参考线,不是你要的列标尺。
二者底层机制完全不同:
-
editor.rulers:静态列标尺,不管你是空格还是 Tab,也不管有没有缩进,就在指定列画线 -
editor.guides.indentation:动态缩进导轨(VSCode 1.85+ 推荐),按代码块层级自动对齐,用于识别if/for等嵌套结构 - 两者可共存:
editor.rulers: [80]和editor.guides.indentation: true能“增强对齐效果”,但功能不可互换
开了 editor.rulers 却看不到线?先查主题颜色
开了 editor.rulers 却看不到线,90% 是因为当前颜色主题把 ruler 线颜色设成了透明或与背景同色。这不是配置失效,而是“画出来了但你看不见”。
- 临时切换到 VSCode 自带的
Default Dark+或Light+主题,验证是否出现竖线 - 若换主题后正常,说明原主题覆盖了 ruler 的颜色;此时需手动定制:
workbench.colorCustomizations中添加"editorRuler.foreground" -
editorRuler.foreground是唯一影响列线颜色的 token,值必须是十六进制带 alpha 的写法(如#a0a0a080),不支持rgb()或英文名 - 注意:这个 token 在部分老主题或高对比度模式下可能被强制忽略
代码格式化快捷键不是列对齐线开关
很多人混淆“代码对齐”和“列对齐线”。Shift + Alt + F(Windows/Linux)或 Shift + Option + F(macOS)是格式化文档的快捷键,它调用的是 Prettier、ESLint、Black 等后端工具,负责缩进、换行、空格等结构重排,和 editor.rulers 完全无关。
- 该快捷键默认不依赖
editor.rulers,也不会根据 ruler 列数做截断或换行 - 若想让某一行(比如含
TODO)单独高亮对齐,editor.rulers无能为力——得用TODO Highlight这类插件 - 若快捷键无效,常见原因包括:未安装对应语言扩展、未配置默认格式化工具、或快捷键被其他插件占用;可通过命令面板运行
Format Document手动验证


















