在Sublime Text中,用正则[ ]{2,}匹配两个及以上连续空格,替换为真实Tab字符,并执行“Convert Indentation to Tabs”确保缩进一致。

在 Sublime Text 中,把多个连续空格替换成一个 Tab,核心是用「查找替换」配合正则表达式,再结合缩进设置确保效果符合预期。
启用正则模式并匹配多个空格
打开 Ctrl+H(Windows/Linux)或 Cmd+H(macOS)调出替换面板,点击右下角的 .* 按钮启用正则表达式模式。在「Find What」中输入:
[ ]{2,}
这会匹配两个或更多连续空格(注意方括号内是一个空格字符)。别用 \s{2,},它会误匹配制表符、换行符等,影响准确性。
替换成 Tab 并确认缩进设置
在「Replace With」中直接按一次 Tab 键(不要输文字“tab”或“\t”),这样能确保插入的是真实 Tab 字符。替换前建议先点「Find All」检查匹配是否合理。替换后,还需确认当前文件的缩进行为:菜单栏 → View → Indentation → Convert Indentation to Tabs,确保后续新增缩进也用 Tab。
批量处理多行或整个文件
如果要处理全文,点击「Replace All」;若只改选中区域,先选中文本再操作。也可用快捷键:Alt+Enter(全文件替换)、Ctrl+Shift+Enter(仅当前选区)。对 Python 等依赖缩进的语言,建议先备份或用 Git 暂存,避免格式错乱引发语法错误。
设为快捷键(可选,提升效率)
想一键完成?可自定义命令:在 Tools → Developer → New Plugin… 中新建插件,粘贴以下代码保存为 spaces_to_tab.py:
import sublime, sublime_plugin
class SpacesToTabCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.replace(edit, self.view.sel()[0], '\t')
self.view.run_command('find_all', {'pattern': r'[ ]{2,}', 'replacements': '\t'})
然后在 Preferences → Key Bindings 添加快捷键,例如:
{"keys": ["ctrl+alt+t"], "command": "spaces_to_tab"}
基本上就这些。不复杂但容易忽略细节——关键是正则写准、Tab 输对、缩进模式配好。










