Sublime Text 无原生“交换两行”命令,但可通过内置 move_line_up/down 命令实现等效操作:Windows/Linux 用 Ctrl+Shift+↑/↓,macOS 用 Cmd+Shift+↑/↓,整行物理移动,支持多行选区,空行同样生效。

Sublime Text 本身没有“交换两行”的原生命令,但可以通过组合快捷键或启用内置的行移动功能快速实现——关键不是找“交换”,而是用“剪切+粘贴到上/下行”或“移动行”来等效完成。
如何用快捷键把当前行向上或向下移动一行
Sublime 内置了 move_line_up 和 move_line_down 命令,对应默认快捷键:
- Windows / Linux:
Ctrl+Shift+↑(上移)、Ctrl+Shift+↓(下移) -
macOS:
Cmd+Shift+↑、Cmd+Shift+↓
这个操作会直接把整行(含空行)在编辑器中物理位移,不依赖剪贴板,也不影响选区。适合快速调整代码顺序,比如把 import 行提到文件顶部,或把某句 return 上提一行。
注意:如果光标在行首或行尾,仍会整行移动;但如果已选中多行,会把整个选区一起移动。
为什么不能直接“交换第3行和第4行”?
Sublime 没有类似 VS Code 的 editor.action.moveLinesUpAction 那种“交换相邻行”的原子命令。所谓“交换”,本质是两次移动:
- 先选中第4行 →
Ctrl+Shift+↑→ 它变成第3行,原第3行被挤到第4行 - 或者选中第3行 →
Ctrl+Shift+↓→ 它落到第4行位置,原第4行升为第3行
两种方式效果一致,但后者更顺手:因为不需要额外定位到下方那行。实际使用中,几乎没人真去“交换”,都是靠单次移动达成目的。
快捷键失效?检查是否被插件或系统占用
常见冲突场景:
- Windows 上
Ctrl+Shift+↑/↓可能被显卡驱动(如 Intel Graphics Command Center)劫持为屏幕旋转快捷键 - 某些输入法(如搜狗、微软拼音)会捕获
Ctrl+Shift组合切换输入模式 - 插件如
Origami或Emacs Pro Essentials可能重绑定这些键
验证方法:打开 Preferences → Key Bindings,搜索 move_line,确认对应命令存在且键位未被覆盖。若被占,可手动在用户键位文件里加一条优先级更高的绑定,例如:
[
{ "keys": ["ctrl+shift+up"], "command": "move_line_up" },
{ "keys": ["ctrl+shift+down"], "command": "move_line_down" }
]
想交换非相邻行(比如第2行和第10行)怎么办?
这时没法靠移动命令一步到位,得回归传统方式:
- 将光标移到第2行 →
Ctrl+L(全选该行)→Ctrl+X剪切 - 移到第10行末尾 →
Enter换行 → 粘贴(Ctrl+V),此时原第2行插入到第10行之后 - 再选中原第10行(现在是第11行)→
Ctrl+X→ 移到新第2行上方 →Ctrl+V
虽然步骤多,但比手动拖拽稳定,也避免鼠标误操作。如果高频使用,建议装插件 Swap Lines(需 Package Control 安装),它提供 swap_line_up / swap_line_down 命令,支持任意距离的行交换。
真正容易被忽略的是:移动命令对空行同样生效,而很多人以为它只作用于“有内容的行”。调试时发现空行突然消失或错位,大概率是误触了 Ctrl+Shift+↑。










