Sublime Text 中移动整行代码的原生快捷键因系统而异:Windows/Linux 为 Ctrl+Shift+↑/↓,macOS 为 Ctrl+Cmd+↑/↓;需确保英文输入法且无插件冲突。

Sublime Text 里移动整行代码,不用剪切粘贴,有原生快捷键,但默认绑定因系统而异,容易按错或没生效。
Windows/Linux 下移动行的快捷键是 Ctrl+Shift+↑ 和 Ctrl+Shift+↓
这是 Sublime 默认绑定,直接选中一行(无需手动选中,光标在行内即可),按组合键就能整行上移或下移。注意不是 Ctrl+↑ —— 那个通常被系统或输入法劫持,大概率无效。
- 光标在空行也有效,会把上/下行拖过来
- 多行同时选中(比如用
Ctrl+L连续选)时,整个选区一起移动 - 如果没反应,先检查是否开启了中文输入法,某些输入法会吞掉
Ctrl+Shift+↑
macOS 下对应的是 Ctrl+Cmd+↑ 和 Ctrl+Cmd+↓
不是 Cmd+Option+↑,也不是 Cmd+Shift+↑ —— 后两者在多数 macOS 版本里被系统保留用于 Mission Control 或显示器切换,Sublime 无法捕获。必须用 Ctrl(即 Control 键)+ Cmd(即 Command 键)组合。
- 如果你习惯用
Cmd为主键,这里容易下意识漏掉Ctrl,结果变成触发系统动作 - 可以在
Preferences → Key Bindings里搜"move_line"确认当前绑定 - 若被占用,可自定义:加一条类似
{"keys": ["super+ctrl+up"], "command": "swap_line_up"}的规则
移动时出现“跳行”或“卡住”,大概率是插件冲突
有些插件(比如 Emacs Pro Essentials、SublimeCodeIntel 旧版、或自定义了 swap_line_up 命令的插件)会覆盖原生命令,导致行为异常:比如按一次动两行、光标跳到行首、或者只移动视觉位置不更新实际顺序。
- 临时排查:关闭所有插件后重试,确认是否恢复
- 查冲突命令:打开控制台(
Ctrl+`),输入sublime.log_commands(True),再按移动键,看输出里执行的是哪个命令 - 常见干扰命令名包括
drag_select、reindent、sort_lines—— 它们有时被错误绑定到相同快捷键
真正要注意的不是快捷键记不记得住,而是光标位置和输入法状态——这两个因素导致的失败占了八成以上。动手前先切英文输入法,再试一次。










