Sublime中移动选中行的默认快捷键是Ctrl+Shift+↑/↓(Win/Linux)或Cmd+Shift+↑/↓(macOS),对应原生命令swap_line_up/down;需确保整行被选中,否则仅移动光标。

Sublime 中移动选中行的快捷键是什么
默认就是 Ctrl+Shift+↑ 和 Ctrl+Shift+↓(Windows/Linux),macOS 对应是 Cmd+Shift+↑ 和 Cmd+Shift+↓。这不是插件功能,是 Sublime Text 原生支持的 swap_line_up / swap_line_down 命令。
注意:必须先选中整行(或至少光标在行内且未选中任何字符),否则可能只移动光标位置而非整行。如果只按了方向键没反应,大概率是没触发“行级选择”状态。
为什么有时选中多行后上下移动只动了一行
Sublime 的行交换逻辑是「对每一行独立执行交换」,但前提是每行都满足可交换条件——比如顶部第一行无法再上移,底部最后一行无法再下移。多行选中时,它不会整体平移,而是逐行尝试交换,导致边缘行卡住、中间行错位。
常见情况包括:
- 选中了从第1行到第3行,按
Ctrl+Shift+↑:第1行不动,第2行和第3行分别跟上面那行交换 → 实际变成原第2行跑到第1行,原第3行跑到第2行,原第1行被挤到第3行 - 文件末尾有空行,选中最后两行再下移:最后一行无法下移,倒数第二行会跟最后一行交换,视觉上像“只动了一行”
- 选中内容跨行但未对齐行边界(比如只选中某行中间一段),命令会退化为光标移动而非行交换
如何安全地批量移动多行(避免错乱)
真正想整体上移/下移一个代码块时,别依赖 swap_line_*,改用剪切 + 粘贴更可控:
- 用
Ctrl+L(多次)选中连续多行(每按一次选中当前行,光标自动跳到下一行) - 按
Ctrl+X剪切,将光标移到目标位置的上方(想插入到某行前)或下方(想插入到某行后) - 按
Ctrl+V粘贴 —— 这才是真正的“块位移”,顺序和缩进全保留 - 如果需要频繁操作,可以给
cut+paste绑定自定义快捷键,比记 swap 逻辑更省心
有没有办法让 swap_line 支持整体位移
原生不支持。但可通过插件扩展,比如安装 Swap Lines(Package Control 可搜到),它重写了逻辑,提供 swap_lines_move_block_up 这类命令,能真正把选中行块整体上推或下拉。
不过要注意兼容性:
- 部分旧版 Sublime(如 3.2 之前)可能加载失败
- 启用后原有
Ctrl+Shift+↑快捷键会被覆盖,需手动在Preferences > Key Bindings里确认绑定的是哪个命令 - 如果同时装了其他行操作插件(如
AlignTab),偶尔会出现快捷键冲突,得删掉冗余绑定
多数日常场景下,老老实实用 Ctrl+L → Ctrl+X → 定位 → Ctrl+V 最稳。swap_line 看似快,但多行时行为反直觉,容易修 bug 修出新 bug。










