ctrl+shift+l仅按选区内的换行符生成光标,不依赖行数;选区需包含换行符且避免多余空格,mac用户需切英文输入法;json对齐须先格式化为多行并确认语言模式为json。

Ctrl+Shift+L 为什么只生成一个光标?
这个操作不是“选中所有行”,而是把当前选区按换行符切片——每行末尾放一个光标。它完全不关心你心里想改几行,只看选区里有没有 \n。
- 鼠标拖选时漏掉最后一行的换行符,就只剩一个光标;改用
Ctrl+L(选整行)连按多次,再按Ctrl+Shift+L更稳 - 光标落在缩进空格后?说明你选区带了开头的空格或
\t;按一次Home把所有光标拉到行首(含缩进),再按一次跳过缩进到真正内容起始处 - Mac 用户注意:
Cmd+Shift+L常被输入法劫持,临时切英文输入法再试
JSON 键值对对齐必须先格式化为多行
Alignment 或 AlignTab 插件都不解析 JSON 语法,它们只做纯文本列对齐。单行 JSON 如 {"name":"Alice","age":25} 里没有换行,插件根本找不到“多行”可对齐。
- 必须先用
Pretty JSON: Format JSON(快捷键Ctrl+Alt+J)展开为合法多行 - 展开后检查右下角语言模式是不是
JSON,不是的话手动切换,否则高亮和格式化都可能异常 - 若格式化报错,说明含非法字符(尾随逗号、单引号、
undefined),先用python -m json.tool校验修复
对齐冒号前得先清理干扰行
Alignment 默认按 : 对齐,但会把注释、空行、嵌套结构里的冒号一并处理,结果错位甚至破坏结构。
- 选中目标区域要精确:比如只选
"key": value所在的连续几行,别全选整个 JSON 块 - 每行必须有且仅有一个用于对齐的
:,且前后无多余空格("key" : value这种带空格的也能对,但一致性差) - 如果某行是
"nested": { "a": 1 },插件会以第一个:为锚点,导致第二层对齐失效——这种得手动拆出来单独处理
AlignTab 比 Alignment 更适合变量赋值对齐
对 int a = 1;、String b = "test"; 这类等号赋值,AlignTab 是更可靠的选择,因为它支持 =r(等号右对齐)、=l(左对齐)等显式控制。
- 安装后选中目标行,按
Ctrl+Alt+A→ 输入=r回车,等号列右靠,变量名左对齐 - 它默认忽略不含
=的行,不会像Alignment那样把注释也拉进来错位 - 注意缩进必须统一为空格(不能混用
\t),否则对齐位置会漂移
复杂点在于:对齐是纯视觉操作,不校验语法、不感知作用域、不区分字符串内/外的符号。一旦选区或格式稍有偏差,结果就不可逆——建议对齐前先 Ctrl+Z 留个撤销点,别依赖软撤销 Ctrl+U。











