应使用^\d+\s+正则删除行首数字序号,需先统一换行符为lf、缩进为纯空格,避免误删缩进或漏删;ctrl+shift+k不适用,因其无语义识别能力。

用 ^\d+\s+ 正则匹配并删除行首数字序号
行号本质是「行首数字 + 后续空白」,直接删数字会误伤行中数字(比如 const count = 123),必须用 ^ 锚定开头、\s+ 匹配紧随其后的空格或 Tab。打开 Ctrl+H,勾选右下角 .*,查找框填 ^\d+\s+,替换框留空,点 Replace All 即可。
删完缩进错乱?先统一缩进格式再操作
混合使用 Tab 和空格时,^\d+\s+ 可能把部分缩进也一并吃掉,导致某些行顶到最左、某些还保留缩进。这不是正则写错了,而是原始缩进不一致。务必在删除前执行:Convert Indentation to Spaces(菜单 → Indentation → Convert Indentation to Spaces)。这步跳过,后续对齐和阅读都会出问题,尤其处理从 Word 或旧项目复制来的文本。
想保留编号但统一右对齐?用捕获组重排
如果目标不是删除,而是让 1.、10.、100. 等宽显示,就得用捕获组。查找 ^(\d+)\.\s*,替换为 \1.(注意后面补两个空格),再手动微调;或者更稳:先 Find All 选中所有 ^\d+\.,按 Ctrl+Shift+L 拆多光标,用方向键+空格统一补位。注意反向引用必须写 \1,不是 $1——Sublime 用的是 Python re 引擎。
为什么 Ctrl+Shift+K 不适合删行号
Ctrl+Shift+K 是删整行(含换行符),它根本不识别“行号”这个语义,只认光标位置。你用它删,要么删错行,要么删不干净——比如行号后跟 Tab,它只会删掉数字,留下 Tab 和后续内容,反而制造混乱。真正该用的只有两种路径:正则批量处理,或多光标精准定位后删。别把行号当普通文本去硬删。
\r\n 和 \n,再配合 Tab/空格混用,^\d+\s+ 的匹配边界会偏移,导致部分行号漏删或删多。动手前先做两件事:File → Line Endings → Unix (LF),再 Convert Indentation to Spaces。











