Sublime Text默认禁用paste_and_indent以避免非代码场景误排版,需手动在用户设置中添加"paste_and_indent": true启用;其生效依赖语法识别、空行粘贴等条件,失效时可用Reindent命令补救。

Sublime Text 的“粘贴并缩进”默认是关闭的
Sublime Text 默认禁用 paste_and_indent,粘贴代码时不会自动调整缩进层级,导致格式错乱。这不是 bug,而是设计选择——避免在非代码场景(比如粘贴纯文本)时意外重排版。
启用 paste_and_indent 的两种方式
必须手动开启,且推荐用用户配置(Preferences → Settings – User),避免被升级覆盖:
- 打开设置:菜单栏
Preferences → Settings – User - 在右侧 JSON 中添加键值:
"paste_and_indent": true - 保存文件,无需重启,立即生效
{
"paste_and_indent": true,
"tab_size": 2,
"translate_tabs_to_spaces": true
}
为什么有时 paste_and_indent 不生效?
该功能依赖上下文判断:只有当前视图语言模式被识别为代码(如 Python、JavaScript),且光标位于合适缩进位置时,才会触发重缩进。常见失效原因:
- 文件未设置语法高亮(右下角显示
Plain Text)→ 手动点击切换为对应语言,如Python - 粘贴目标行已有内容(非空行末尾)→ Sublime 不敢擅自调整已有结构,只对空行或行首粘贴有效
- 粘贴的是带格式富文本(比如从网页/微信复制)→ 先粘贴到纯文本编辑器(如记事本)中中转一次
- 插件冲突(如
Emacs Pro Essentials或某些剪贴板增强插件)→ 临时禁用插件排查
替代方案:快捷键手动触发缩进对齐
当 paste_and_indent 条件不满足时,可快速补救:
- 粘贴后立即按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入
reindent,选择Indentation: Reindent Lines - 或直接使用快捷键:
Ctrl+Alt+[(Windows/Linux)、Cmd+Ctrl+[(macOS)
这个操作会基于当前语法定义和缩进规则,重新对齐选中区域或全文,比盲目粘贴更可控。










