sublime text 中移动整行的默认快捷键为:windows/linux 用 ctrl+shift+↑/↓,macos 用 cmd+shift+↑/↓;若无效,优先检查输入法、系统辅助功能及快捷键冲突,再确认键绑定未被覆盖。

Sublime Text 中如何用快捷键移动整行
默认情况下,Sublime Text 支持原生快捷键直接移动整行,无需插件或额外配置。关键是确认你用的是标准键位绑定,且没有被系统或其他软件拦截。
- Windows / Linux:选中一行(或不选中),按
Ctrl+Shift+↑向上移动,Ctrl+Shift+↓向下移动 - macOS:对应为
Cmd+Shift+↑和Cmd+Shift+↓ - 如果光标在行内未选中文本,也会把当前行整体移动;如果已选中多行,则整块移动所选行区域
为什么按了没反应?常见干扰原因
最常遇到的不是功能不存在,而是快捷键被“吃掉”了——尤其是 Windows 上的输入法、远程桌面、显卡控制面板(如 NVIDIA GeForce Experience)或某些键盘驱动会劫持 Ctrl+Shift+↑/↓ 组合。
- 先尝试切换到英文输入法再试,很多中文输入法(如搜狗、微软拼音)会把该组合用于中英文切换
- 检查是否开启了“粘滞键”或“筛选键”,它们可能干扰组合键识别
- 在 Sublime 的菜单栏点 Preferences → Key Bindings,搜索
"ctrl+shift+up",确认默认绑定仍在Default (Windows).sublime-keymap或对应系统文件中未被覆盖
想自定义快捷键?修改 key bindings 即可
如果你习惯其他编辑器(比如 VS Code 的 Alt+↑/↓),或者和本地环境冲突严重,可以直接重映射。注意:不要改系统默认文件,应在用户 keymap 中覆盖。
- 打开 Preferences → Key Bindings,右侧用户文件中添加:
[
{ "keys": ["alt+up"], "command": "swap_line_up" },
{ "keys": ["alt+down"], "command": "swap_line_down" }
]
swap_line_up 和 swap_line_down 是 Sublime 内置命令名,不能拼错移动行时保留缩进对齐的细节
Sublime 默认移动行时会保持原始缩进层级,不会自动重排或修正空格/Tab 混用问题。这点和格式化命令(如 reindent)不同。
- 如果某行开头是 4 个空格,移动后仍为 4 个空格;如果是 Tab + 2 空格,也原样搬移
- 跨缩进层级移动(比如从 if 块内移到块外)时,视觉上可能显得错位,但 Sublime 不做智能调整——它只移动文本行,不解析语法
- 若需同步调整缩进,得额外配合
indent/unindent命令,或用插件如AlignTab










