Sublime Text中将当前行上移或下移的快捷键是Ctrl+Shift+↑/↓(Windows/Linux)或Cmd+Shift+↑/↓(macOS),该操作为原生行级物理位移,光标自动跟随至新位置行首,不依赖选中状态,多行选中时整体平移。

Sublime Text 里怎么把当前行往上或往下挪?
直接用 Ctrl+Shift+↑(Windows/Linux)或 Cmd+Shift+↑(macOS)把整行上移,Ctrl+Shift+↓ / Cmd+Shift+↓ 下移。这不是“选中再剪贴”,而是原生行级移动,光标会自动跟到新位置的行首。
常见错误是按成 Ctrl+↑ —— 那只是切换标签页;或者忘了加 Shift,结果触发的是“多光标向上扩展”而非行移动。注意:如果当前行有选中文本,操作会移动选中的所有行,不是只动光标所在行。
复制当前行不选中、不按 Ctrl+C 的快捷方式
用 Ctrl+Shift+D(Win/Linux)或 Cmd+Shift+D(macOS)一键复制当前行并插入在下方。它不依赖剪贴板,也不要求你先选中整行——哪怕光标停在中间某个字符,也会完整复制整行。
几个关键细节:
- 如果光标在空行,复制出来还是空行
- 如果当前行有选区,只复制选区所在行(不是选区内容)
- 连续按多次
Ctrl+Shift+D,会逐行向下叠放副本,适合快速生成结构相似的代码块 - 这个命令不能“向上复制”,想插在上方得先用行移动快捷键把副本调上去
为什么有时候快捷键没反应?检查这三处
不是快捷键失效,大概率是配置冲突或模式干扰:
- 确认没开启 vim 模式(
Preferences → Settings – Key Bindings查"ignored_packages"是否含"Vintage";开了的话,这些快捷键会被 vim 键绑定覆盖) - 检查是否被系统级快捷键劫持(比如 macOS 的「调度中心」默认也用
Cmd+Shift+↑,需在「系统设置 → 键盘 → 快捷键 → 调度中心」里关掉) - 某些插件(如
Emacs Pro Essentials或SublimeCodeIntel旧版)会重载默认键绑定,可临时禁用插件测试
想自定义成 Ctrl+↑/↓ 移动行?小心和字体缩放冲突
可以改 Preferences → Key Bindings – User,加两条规则:
[
{ "keys": ["ctrl+up"], "command": "swap_line_up" },
{ "keys": ["ctrl+down"], "command": "swap_line_down" }
]
但要注意:Ctrl+± 和 Ctrl+0 默认是字体缩放,如果你把 Ctrl+↑ 改成移动行,就等于废掉了「放大字体」功能——除非你同步改掉缩放的快捷键。更稳妥的做法是用 Alt+↑/↓ 这类冷门组合,避免和 Sublime 内置行为打架。
真正容易被忽略的是:行移动命令(swap_line_up)和行复制命令(duplicate_line)在多光标场景下行为一致,但如果你开了 drag_text 插件或启用了拖拽编辑,它们可能被拦截——这时候得看插件文档,而不是怀疑快捷键坏了。

















