关闭粘贴自动缩进需将 paste_indent 设为 false,在用户设置中添加 { "paste_indent": false } 并保存;还可使用 Ctrl+Shift+V(Win/Linux)或 Cmd+Shift+V(macOS)纯文本粘贴。

Sublime Text 中如何关闭粘贴自动缩进?
默认情况下,Sublime Text 会在你 paste 时根据当前语法和缩进设置自动调整新内容的缩进层级,导致原始空格/Tab 被“修正”——这不是 bug,是它主动对齐光标所在行的缩进规则。要保留原始格式,必须关掉这个行为。
修改 paste_indent 设置为 false
该选项控制粘贴时是否尝试智能缩进。设为 false 后,粘贴内容将完全按原始字符(包括开头空格、Tab)插入,不作任何调整。
操作步骤:
- 打开 Sublime Text → Preferences → Settings
- 在右侧用户设置(
Preferences.sublime-settings — User)中添加或修改这一行:
{
"paste_indent": false
}
保存后立即生效,无需重启。注意:不要写在左侧默认设置里,那会被覆盖。
为什么有时关了还“自动缩进”?检查 detect_indentation 和文件实际缩进
即使 paste_indent 关闭,如果文件开启了 detect_indentation(默认开启),且你粘贴的内容首行有缩进,Sublime 可能会触发一次临时缩进检测,影响后续行为。更常见的是:你粘贴的文本本身不含开头空白,但目标位置处于缩进块内,编辑器会把整段“挂”在当前缩进下——这其实是正常行级插入逻辑,不是 paste_indent 在起作用。
确保原始文本真正带缩进:
- 用其他编辑器(如 VS Code 或记事本)确认粘贴内容开头确实有空格或 Tab
- 在 Sublime 中启用
draw_white_space查看不可见字符:{"draw_white_space": "all"} - 必要时可先
Ctrl+Shift+P→ 输入Convert Indentation to Spaces/Tabs统一目标文件缩进风格
替代方案:用“纯文本粘贴”快捷键绕过所有格式处理
Sublime 自带一个更彻底的方式:跳过所有粘贴逻辑,直接插入纯字符串。Windows/Linux 是 Ctrl+Shift+V,macOS 是 Cmd+Shift+V。它无视 paste_indent、语法、缩进设置,连换行符都原样塞进去。
适用场景:
- 从网页、终端复制带混合缩进的代码片段
- 粘贴含多级缩进的 JSON/YAML 片段,避免被压平成单行
- 调试时需要 1:1 复现原始空格布局
这个快捷键不依赖设置,但得记住——很多人第一次用才发现原来还有这招。
最易忽略的一点:粘贴前光标位置决定了插入起点,如果光标在某行中间,粘贴内容仍会从那一列开始写入,而不是自动换行对齐。想严格保留换行+缩进,请确保光标停在行首(Home 或 Ctrl+Home)。










