sublime text 不支持行号对齐,因其行号为固定左对齐的 ui 元素;如需对齐代码中编号(如 1.、10.),应使用 alignment 插件并配置正则规则 ^d+.,配合多光标与正则替换辅助调整。

Sublime Text 本身不支持“行号对齐”
行号是编辑器 UI 的显示元素,不是文档内容,无法被插件识别或对齐。你看到的“行号列”宽度由 line_numbers 设置控制,但它是固定左对齐、不可调整字符间距的纯 UI 区域。所谓“对齐行号”,实际想解决的通常是两类问题:一是代码中手动写的编号(如注释里的 1.、2.),二是希望代码内容与行号视觉上更协调——后者靠缩进和字体即可,无需配置。
想对齐代码里的编号(如 1.、2.、3.)用 Alignment 插件
Alignment 插件能按指定字符对齐文本,但默认不处理点号加数字这类模式,需手动加正则规则:
- 打开
Preferences → Package Settings → Alignment → Settings – User - 填入支持编号对齐的正则,例如:
{"alignment_regex": ["^\d+\."]}(注意:这是正则数组,不是alignment_chars) - 选中含
1.、10.、100.的多行,按Ctrl+Alt+A触发 - 确保每行开头都是数字+点,否则匹配失败;行首有空格会干扰
^锚定
对齐失败常见原因
Alignment 对编号类对齐特别敏感,容易出错:
-
1.和10.长度不同,插件只按第一个匹配位置切分,不会补零或右对齐数字部分 - 混用
1.和(1)会导致部分行跳过——正则必须统一覆盖所有变体 - 行尾有注释或空格时,
Trim Trailing White Space必须先执行,否则对齐位置偏移 - 文件语法设为
Plain text时,某些正则引擎行为异常,建议临时切到Markdown或Text
别用 AlignTab 处理编号对齐
AlignTab 的 align_on 只接受字面字符,不支持正则,所以 "1." 这种带数字的模式无法加入数组——它只会尝试在每行找字面字符串 "1.",显然不适用。真要批量处理编号列表,不如用 Sublime 原生的多光标 + 正则替换:Ctrl+H 开启正则,搜索 ^(d+).,替换为 . (补空格),再手动微调。
真正需要“行号对齐”的场景极少,多数时候是误把编号当行号,或期望 UI 行号列自动适应最长行号宽度——后者 Sublime 不提供接口,硬改会破坏主题兼容性。











