AlignTab是ST4唯一真正可用的对齐插件,Alignment因依赖已移除API而静默失效;安装AlignTab后必须彻底重启,再配置alignment_chars为["=",":","->","|"]并设align_indents为false才能正确对齐。

AlignTab 是 Sublime Text 4 唯一真正可用的文本对齐插件,Alignment 插件在 ST4 中已完全失效——它依赖被移除的旧 API,按 Ctrl+Alt+A 无响应、控制台不报错、也不提示,就是静默挂掉。
为什么 Alignment 在 ST4 里按了没反应?
这不是你配置错了,是插件本身无法运行:Alignment 调用的 view.settings().set('align_indent', ...) 等私有接口在 ST4 中已被彻底移除;它也没适配 ST4 的异步命令机制(on_text_command),所以安装后只是“假活”。你看到的“已安装”状态,和实际能否触发命令毫无关系。
怎么装 AlignTab 并让它真正对齐 = 和 :?
装完必须重启 Sublime Text,否则命令注册不全;默认配置只按空白对齐,想对齐等号或冒号得手动改配置:
- 用
Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜索并安装AlignTab - 必须重启 Sublime Text(不是重载窗口,是彻底退出再打开)
- 菜单栏 →
Preferences → Package Settings → AlignTab → Settings,在右侧用户配置中填入:
{
"alignment_chars": ["=", ":", "->", "|"],
"alignment_space": 1,
"align_indents": false
}
注意:"alignment_chars" 是字符串数组,竖线要写成 "|"(不用转义);"align_indents": false 是关键,否则缩进会被强行拉平,破坏代码结构。
选中多行后按 Ctrl+Alt+A 还是没对齐?先查这三件事
AlignTab 不解析语法,只做纯文本匹配,失败几乎都卡在输入条件上:
- 右下角状态栏不能是
Plain text或只读(RO),得是JavaScript、Python等明确语法;JSON/YAML 文件有时被跳过,可临时切到JSON语法再试 - 必须选中**完整多行**:用
Ctrl+L多次选中整行,或鼠标拖选时确保包含每行末尾的换行符;只点一下光标或只选中一行,命令直接忽略 - 每行都得含至少一个
alignment_chars里定义的字符;某行漏了=或:,它就会被跳过,其余行仍对齐——结果看起来像“错位”
对齐后空格变 Tab 或缩进歪了怎么办?
这是 detect_indentation 和 AlignTab 冲突的典型表现。Sublime 默认开启自动缩进检测,一旦文件混用空格和 Tab,AlignTab 生成的填充就会混乱。
解决方法很直接:
- 菜单 →
View → Indentation → Convert Indentation to Spaces - 再选
Indent Using Spaces,并把缩进大小设为固定值(如 2 或 4) - 设置里搜
detect_indentation,设为false,避免它偷偷切回 Tab
对齐不是万能的,它只管“横向拉齐”,不管语法是否合法、字符串是否跨行、注释是否干扰——这些都得靠你提前清理好选区。别指望一键解决所有排版问题,它只是帮你省掉手调空格的那一步。











