vs code 中一级标题默认缩进源于语言模式未设为 markdown,导致编辑器将其当作普通文本处理而产生软缩进;正确做法是将文件语言模式设为 markdown、保存为 .md 后缀,并确保 # 前无空格。

一级标题默认缩进是怎么来的
VS Code 里 # 标题 左移不是靠“调整标题位置”,而是它根本没被识别为 Markdown 标题——你看到的缩进,其实是编辑器把这行当普通文本,按当前语言模式(比如 Plain Text 或未启用 Markdown)做了软缩进,或者触发了自动缩进逻辑(如上一行末尾有冒号、括号等)。真正的 Markdown 一级标题 # 标题 本身不带缩进,渲染预览时也居左对齐。
确认文件语言模式是 Markdown
这是最常被忽略的前提。VS Code 不会自动把 .txt 或无后缀文件当成 Markdown 处理:
- 看右下角状态栏,检查是否显示
Markdown;如果不是,点击它 → 选Change Language Mode→ 搜索并选Markdown - 保存为
.md后缀(如readme.md),能大幅提高自动识别率 - 如果用了插件(如 “Markdown All in One”),确保没开启「标题自动加空格」类格式化规则
禁用干扰性自动缩进
某些设置会让 VS Code 在回车后自动继承上一行缩进,导致新写的 # 标题 被顶到右边:
- 打开设置(
Ctrl+,),搜editor.autoIndent,设为false或keep(别用full) - 搜
editor.formatOnType,临时关掉,避免键入#后被格式化插件“修正”成带空格的# 标题 - 检查是否有其他插件(如 Prettier、EditorConfig)在保存时强制添加缩进——可在命令面板运行
Format Document With...看当前生效格式化器
预览里标题还是偏右?那是 CSS 问题
VS Code 内置预览器(Ctrl+Shift+V)用的是轻量 CSS,部分主题或自定义样式可能误给 h1 加了 margin-left:
- 右键预览页 →
Inspect→ 看<h1></h1>元素是否被额外样式影响 - 临时禁用所有 Markdown 相关插件,再开预览,确认是否恢复居左
- 不用改 CSS:只要源码是顶格写的
# 标题,导出为 HTML/PDF 或用 Typora/Obsidian 打开,一定居左——VS Code 预览器的渲染偏差不影响实际语义
真正要盯住的只有两件事:文件语言模式必须是 Markdown,源码里 # 前不能有空格或制表符。其余所谓“左移”,都是编辑器视觉反馈的假象,不是标题本身的问题。










