Sublime Text中按Ctrl+Shift+P输入View: Show White Space可显示隐藏字符(·表示空格、→表示制表符、¶表示换行符);替换空白需用正则\s+→单个空格,并勾选“. matches newline”以跨行处理。

怎么识别和显示隐藏字符
Sublime Text 默认不显示制表符、空格、换行符等隐藏字符,导致你看到的“空白”可能是 \t、\r\n、 或多个连续空格。先打开显示开关:按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Set Syntax: Plain Text 确保当前是纯文本上下文,再输 View: Show White Space 并回车——此时所有空格变成小圆点 ·,制表符变成 →,换行符显示为 ¶。
替换制表符或多个空格为单个空格
直接用普通字符串替换会漏掉混合情况(比如空格+制表符+空格),必须开正则:
- 按
Ctrl+H呼出替换面板,点击右下角.*图标启用正则模式 - 查找框填
\s+(匹配一个及以上空白字符,含空格、制表符、换行符) - 替换框填
(一个英文空格) - ⚠️ 注意:
\s在 Sublime 中默认不匹配\r\n,如需跨行压缩,额外勾选. matches newline(或按Alt+.) - 先点
Find All看高亮是否覆盖所有目标区域,避免把缩进或对齐空格误删
清除行首/行尾不可见字符
常见于粘贴代码后出现的 U+200B(零宽空格)、U+FEFF(BOM)、或全角空格 :
- 查找框填
^[^\S\r\n]+|[^\S\r\n]+$(行首或行尾的非换行空白) - 替换框留空
- 必须启用正则 +
Whole Word关闭(否则^和$不生效) - 若要单独处理零宽字符,查
\u200b或\ufeff,注意文件编码需为 UTF-8(右下角状态栏显示) - 全角空格
不能用\s匹配,得显式写成(直接复制粘贴该字符到查找框)
替换后格式错乱?小心换行符不统一
Windows 用 \r\n,macOS/Linux 用 \n,混在一起会导致 Git diff 异常或脚本执行失败:
- 查
\r\n→ 替换为\n(转 LF),或查(? → 替换为 <code>\r\n(补 CR) - 正则中
\r\n必须完整写出,\n单独写时不会自动识别为 Windows 换行 - 批量操作前,先用
File → Save with Encoding → UTF-8统一编码,否则 BOM 类字符可能被跳过 - 改完别急着
Save All,先用命令面板运行Convert Line Endings to LF或to CRLF做二次归一化
\s 对它们完全不敏感——遇到诡异“看不见的空格”,唯一可靠办法是复制那个字符本身去搜。


















