Ctrl+Shift+↑没反应是因被输入法、Vintage插件或系统快捷键拦截;默认绑定的是move_line_up(插入上移),非swap_line_up(真交换);建议新增Ctrl+Alt+↑绑定以规避冲突。

默认已有,无需配置;但“上移”本质是插入而非交换,且极易被静默拦截——先排查失效原因,再考虑是否真要改键。
Ctrl+Shift+↑ 为什么按了没反应?
这不是 Sublime 坏了,而是快捷键根本没传到它手里:
- 输入法处于中文状态(尤其搜狗、微软拼音),
Ctrl+Shift+↑被劫持为中英文切换 → 切成英文再试 - Vintage 插件开着且在 Normal 模式,
Ctrl+Shift+↑被当 Vim 导航键吞掉 → 按i进 Insert 模式再操作 - 系统级冲突:Windows 上 NVIDIA 控制面板、罗技 G HUB;macOS 上 Mission Control 默认绑定
Cmd+↑→ 进系统设置关掉对应快捷键
move_line_up 和 swap_line_up 到底调哪个?
默认快捷键 Ctrl+Shift+↑ 绑定的是 move_line_up,不是 swap_line_up。这是关键误解点:
-
move_line_up:把当前行插入到上一行上方,原上一行下移(位移,留空位) -
swap_line_up:第4行和第5行内容对调,其他行不动(真交换,不产生空行) - 菜单里写 “Swap Line Up” 是历史命名误导,实际行为永远是
move_line_up - 如果你手动在
Key Bindings – User里绑了swap_line_up到这个快捷键,多行选中时会顺序错乱、撤销链断裂 —— 得立刻改回来
想换热键?别直接覆盖,优先加新键
不建议删掉默认绑定,容易引发兼容问题。更安全的做法是加一条用户级新绑定:
- 打开
Preferences → Key Bindings – User - 加入如下(以 Windows/Linux 为例):
[{"keys": ["ctrl+alt+up"], "command": "move_line_up"}] - 保存后,
Ctrl+Alt+↑就能上移当前行,且完全绕开输入法和 Vintage 冲突 - 注意:命令名必须小写、全拼,大小写错或拼错(如
MoveLineUp)会导致静默失效
真正容易被忽略的是:Sublime 的行移动不校验缩进、不识别代码结构、不提示折叠边界。你把一个 for 块拖到函数外,它照搬缩进,不会自动去缩进,也不会警告“这里语法不合法”。它只搬字面行,其余全是你的责任。











