Alignment插件需手动触发且严格依赖选区,仅响应Ctrl+Alt+A命令,不自动监听编辑或保存事件;必须按Ctrl+L→Ctrl+Shift+L→Ctrl+Alt+A三步操作,选区需覆盖完整逻辑行并统一缩进与换行符。

Alignment 插件不自动对齐,必须手动触发且严格依赖选区
Sublime Text 的 Alignment 插件从不监听编辑或保存事件,它只响应一次性的手动命令。装完就指望代码“自己排好”,结果毫无反应——这不是插件故障,是误以为它有自动能力。
关键操作链只有三步:Ctrl+L 选中第一行 → Ctrl+Shift+L 拆成多光标 → Ctrl+Alt+A 触发对齐。漏掉任意一步,比如只用鼠标拖选但没覆盖换行符,Sublime 就可能只识别为单行,命令直接静默失败。
- 快捷键被劫持很常见:macOS 系统级的
Cmd+Opt+A可能被 Spotlight 占用,需在「系统设置 → 键盘 → 快捷键」里关闭冲突项 - 选区必须包含完整逻辑行:某行末尾有注释或空格,
Alignment仍会尝试对齐,但位置偏移;建议先执行Ctrl+Shift+P→Trim Trailing White Space - 空行或缺分隔符的行会被跳过:比如三行中有一行没
=,其余两行仍会对齐,但视觉上明显错位——这不是 bug,是设计如此
alignment_chars 配置决定哪些符号能触发对齐
Alignment 默认只认 =,想支持 :、=> 或 ->,必须手动改配置。它不读取语言语法,纯粹按字符串匹配,所以顺序和转义都影响结果。
在 Preferences → Settings – User 中添加:
{
"align_indent": false,
"alignment_chars": ["=", ":", "=>", "->"]
}
注意:"==" 必须写在 "=" 后面,否则 = 会提前截断匹配,导致 == 被拆成两个单独的 = 处理;所有符号必须用双引号包裹,逗号不能省略。
- 该配置仅对
Alignment命令有效,对 Sublime 原生的align_indent命令完全无效 - JSON 格式错误(如多一个逗号、少一个引号)会导致整个插件失效,命令面板搜不到
Alignment相关条目 - 修改后无需重启,但若命令突然消失,可
Ctrl+Shift+P输入Reload Syntax强制重载
对齐失败的典型现象和真实原因
你选了五行带 = 的 Python 变量赋值,按 Ctrl+Alt+A 后只有前两行动了——大概率不是插件问题,而是混用了 Tab 和空格,或某行用了中文等号 =(Unicode U+FF1D)。
- 缩进不统一:某行用 2 个空格,另一行用 Tab,
Alignment会把 Tab 当作 4 或 8 个字符处理,导致列错位;统一用"translate_tabs_to_spaces": true+"tab_size": 4 - 换行符不一致:Windows 的
\r\n和 Unix 的\n混在同一个文件里,Sublime 可能无法正确识别行边界;执行File → Convert Line Endings → Unix - 符号不可见:比如冒号后面多了零宽空格(U+200B),肉眼看不见,但正则匹配失败;可用
Ctrl+Shift+P→View All Characters查看隐藏字符
Markdown 表格对齐必须用 Table Editor,Alignment 不适用
Alignment 是纯文本符号对齐工具,它不认识 Markdown 表格结构。拿它去对齐 | key | value | 这类内容,只会按竖线 | 机械拉齐,破坏表头分隔行 |---|---| 的语义,甚至生成非法 Markdown。
真正靠谱的做法是装 Table Editor 插件:
- 安装后,光标停在表格任意行,按
Ctrl+Alt+T(Windows/Linux)即可重算各列宽度并居中对齐 - 配置
"default_format": "markdown"和"on_save": true,保存时自动刷新对齐效果 - 务必确认当前文件语法是
Markdown GFM(右下角状态栏显示),否则插件可能不激活
别试图用 Alignment “凑合”表格对齐——它连 | 的上下文都不感知,强行使用只会让格式越来越乱。


















