必须将 wordwrap 设为 "bounded" 且设置 wordwrapcolumn 为 80,才能实现第 80 列强制软折行;仅设标尺或仅开软换行(on/off)均无效。

VSCode 不会在 wordWrapColumn 处“自动折行”——它只在启用软换行时,按该列数提示折行位置,真折不折由 wordWrap 模式决定。
为什么改了 wordWrapColumn 看不出效果
因为默认 wordWrap 是 off,软换行根本没开,标尺自然不生效。标尺只是视觉参考线,不是强制断点。
-
wordWrap: "off"→ 无视wordWrapColumn,长行直接水平滚动 -
wordWrap: "on"→ 在视口宽度处折行,wordWrapColumn仅显示虚线标尺(需开启editor.rulers) -
wordWrap: "bounded"→ 才真正按wordWrapColumn值折行(但仅当行宽 > 该值)
怎么让代码在第 80 列强制软折行
必须同时配两个设置:折行行为 + 折行依据。只设一个等于白调。
- 打开设置(
Ctrl+,或Cmd+,),搜word wrap - 把
Editor: Word Wrap设为bounded - 把
Editor: Word Wrap Column设为80 - (可选)加标尺辅助判断:在
settings.json里加"editor.rulers": [80]
bounded 和 on 的实际区别
写 Markdown 或日志时容易误选错模式,结果发现折得莫名其妙。
-
wordWrap: "on"→ 折在编辑器可视区域右边缘,窗口拉宽就取消折行,wordWrapColumn完全无效 -
wordWrap: "bounded"→ 只要一行字符数超过wordWrapColumn,就在该列后软折,和窗口大小无关 - 性能上:
bounded对超长单行(如 base64、URL)重绘略慢,但日常影响几乎不可感
常见踩坑点:标尺显示了,但就是不折行
最常漏掉的是没关掉 editor.wordWrap 的继承链——用户设置覆盖了工作区或语言专属设置。
- 检查设置搜索框右上角的层级图标,确认你改的是「User」或当前「Workspace」,而非被
[python]等语言设置覆盖 - 某些插件(如 Prettier、EditorConfig)会动态覆盖
wordWrap,关掉插件试试 -
wordWrapColumn只对软换行生效,硬换行(Enter)或格式化工具插入的换行不受它控制
真正起作用的是 wordWrap 模式和 wordWrapColumn 的组合,而不是单个参数。很多人调了半天标尺,却忘了先打开“bounded”这个开关。











