必须将editor.wordWrap设为"wordWrapColumn"且editor.wordWrapColumn设为80才生效;仅改列数无效,因VSCode忽略未匹配模式的列值,且软换行按渲染宽度非字符数计算,不修改文件内容。

editor.wordWrap 必须设为 "wordWrapColumn"
只改 editor.wordWrapColumn 数值没用——VSCode 会忽略它。必须同时把 editor.wordWrap 设成 "wordWrapColumn",而不是 "on" 或 "bounded"。前者按窗口宽度折,后者取窗口宽和列数的较小值,都不保证严格落在第 80 列。
怎么配才真正生效
打开设置(Ctrl + , 或 Cmd + ,),搜 word wrap,做两件事:
- 把
Editor: Word Wrap下拉选成wordWrapColumn - 搜
wordWrapColumn,把Editor: Word Wrap Column设为80
或者直接编辑 settings.json,加这两行:
{"editor.wordWrap": "wordWrapColumn","editor.wordWrapColumn": 80}
改完不用重启,但已打开的文件可能要手动按一次 Alt + Z 刷新渲染。
为什么有时还是不折在第 80 列
软换行不是按字符数硬切,而是按渲染宽度算:
- 等宽字体(如 Fira Code、JetBrains Mono)下,
80基本准;非等宽字体(如系统默认的 San Francisco)偏差明显 - 遇到中文、emoji、全角符号或
\t,VSCode 按像素宽度折,可能提前或延后一两个位置 - 如果当前文件语言有单独配置(比如
"[json]": { "editor.wordWrap": "off" }),会覆盖全局设置,得去语言专属设置里关掉
别指望它改文件内容
editor.wordWrapColumn 只影响眼睛看到的样子,不影响实际文本:
- 复制粘贴出来仍是单行
-
git diff、eslint、black都完全感知不到“视觉折行” - 想真正在第 80 列插入
\n,得靠格式化工具:Python 用black --line-length=80,JS 用 Prettier 的printWidth: 80
混淆软换行和硬换行,是调试时最常卡住的地方。


















