VSCode中开启第80列垂直标尺线需配置"editor.rulers": [80],该设置为纯视觉提示,按字符列数定位,不干预输入或换行;必须使用正整数数组,语言专属配置如"[python]": {"editor.rulers": [79]}可限定生效范围。

VSCode 里没有“代码长度标尺线”这个独立功能,只有 editor.rulers —— 它画的是垂直虚线,位置按字符列数算,不是像素或物理宽度。想靠它控制“每行多长”,得理解它只是视觉提示,不拦你打 200 个字符。
怎么让第 80 列出现一条竖线
直接改 settings.json,加一行:
"editor.rulers": [80]
保存后,编辑器右侧就会在第 80 个字符位置显示一条浅灰虚线。注意:它对齐的是“字符数”,不是“字节数”或“显示宽度”;中文、emoji、全角符号都算 1 列。
- 多个标尺?写成
[80, 120],会同时显示两条 - 只对 Python 生效?用语言专属配置:
"[python]": { "editor.rulers": [79] } - 输成
["80"]或[80.5]→ 无效,必须是正整数数组 - 工作区有
.vscode/settings.json?它会覆盖用户级设置,记得检查那里有没有空数组"editor.rulers": []
为什么标尺没显示出来
最常见不是功能坏了,而是配置被悄悄屏蔽了:
- 主题把标尺颜色设成透明(比如某些暗色高对比主题),换回默认主题试试
- 缩放比例过高(如 175%)+ 高 DPI 屏幕 → 标尺线可能被渲染得极细甚至不可见
- 开了
editor.wordWrap: "on"后误以为标尺“失效”——其实它还在,只是你看到的是折行后的第一段,标尺仍按原始行长计算位置 - 文件类型触发了语言专属设置,但你改的是全局配置,结果对当前文件不生效
标尺和“实际限制每行长度”是两回事
editor.rulers 不阻止输入,也不自动换行。真要约束长度,得配别的:
- 格式化工具:Prettier 的
printWidth(如设为80),保存时自动折行 - 校验工具:ESLint 的
max-len规则,报错但不修改代码 - 软换行开关:
editor.wordWrap: "bounded"+editor.wordWrapColumn: 80,让超长行在编辑器里视觉折行(源码不变) - 别碰
diffEditor.maxColumn:那是对比视图专用,对普通编辑器无效
标尺本身很简单,但容易卡在“改了没反应”上——问题往往出在配置层级冲突、主题干扰或数值类型错误,而不是功能本身。先确认 editor.rulers 是数字数组、没被覆盖、主题没吃掉颜色,再调其他东西。


















