Sublime Text中移动整行的原生快捷键:Windows/Linux用Ctrl+Shift+↑/↓,macOS用Cmd+Shift+↑/↓;支持多行整体移动,可通过配置"move_to_limit_on_up_down": false保持光标列位置。

Sublime Text 里移动整行代码,不用剪切粘贴,有原生快捷键直接拖动——但不同系统按键不同,且容易和系统级快捷键冲突。
Windows / Linux 上如何上下移动一行
选中某一行(光标在该行任意位置,无需全选),按 Ctrl+Shift+↑ 向上移动,Ctrl+Shift+↓ 向下移动。移动时,整行会带缩进一起跳转,不破坏代码结构。
常见问题:
- 按了没反应?可能是输入法处于中文状态,或被其他软件(如 QQ、钉钉)劫持了快捷键
- 想移动多行?先用
Ctrl+L多次选中多行,再用上述组合键,会整体平移所有选中的行 - 移动后光标停在哪?默认落在目标位置的行首;如果希望保持列位置,需改配置(见下文)
macOS 上对应快捷键是什么
macOS 使用 Cmd+Shift+↑ 和 Cmd+Shift+↓。注意不是 Ctrl,也不是 Option —— 用错键位是 macOS 用户最常踩的坑。
如果你装了 Karabiner-Elements、BetterTouchTool 或某些远程桌面工具,这些键可能被重映射,建议临时禁用测试。
移动行时保留光标列位置(避免跳到行首)
默认行为是光标归位到目标行行首,对齐缩进很友好,但写长表达式时可能打断编辑节奏。可通过设置开启“列保持”:
{
"move_to_limit_on_up_down": false
}
把这个选项加到 Preferences → Settings – User 中即可。注意它同时影响 ↑/↓ 行内跳转行为,不只是移动行时生效。
快捷键失效或想自定义怎么办
打开 Preferences → Key Bindings – User,添加类似下面的规则(以 Windows 为例):
[
{ "keys": ["ctrl+alt+up"], "command": "swap_line_up" },
{ "keys": ["ctrl+alt+down"], "command": "swap_line_down" }
]
注意命令名是 swap_line_up 而不是 move_line_up —— Sublime 旧版本用后者,新版本统一为 swap_*,拼错就无效。
自定义前先确认没和其他插件冲突,比如 Emacs Pro Essentials 或 Origami 可能占用了类似键位。
真正麻烦的不是记不住快捷键,而是移动后缩进错乱、多行选中逻辑不一致、或者跨平台协作时队友用 macOS 你用 Windows 却没同步键位习惯——这些细节比功能本身更消耗调试时间。










