Sublime Text 不支持原生多行代码块整体左右移动快捷键,真正可用的原生命令是 Ctrl+[ / Cmd+[ 减缩进和 Ctrl+] / Cmd+] 增缩进,选中多行后可批量调整缩进层级。

Sublime Text 没有原生的「多行代码块整体左右移动」快捷键。它不支持像上下移动那样直接按组合键把几行代码一起向左或向右平移缩进——Ctrl+Shift+←/→ 或 Cmd+Shift+←/→ 在 Sublime 中默认未绑定该功能,也不会触发缩进调整。
为什么 Ctrl+Shift+←/→ 没反应?
这不是你配置错了,而是 Sublime 原生根本没定义这组行为:
-
Ctrl+Shift+←/Ctrl+Shift+→(Win/Linux)在多数系统中被输入法或窗口管理器占用,比如搜狗拼音用它切换中英文 -
Cmd+Shift+←/Cmd+Shift+→(macOS)常被 Mission Control 或 Spotlight 劫持 - 即使解除系统冲突,Sublime 默认 keymap 里也不存在
shift_by_units或unindent类命令绑定到这组按键 - 选中多行后按方向键,只会移动光标,不会批量缩进
真正能批量调缩进的原生命令只有这两个
它们不是“左右移动”,而是「增减缩进层级」,但这是最接近你需求的可靠方案:
-
Ctrl+[(Win/Linux)或Cmd+[(macOS):对当前行或选中行整体减少一个缩进层级(向左收) -
Ctrl+](Win/Linux)或Cmd+](macOS):对当前行或选中行整体增加一个缩进层级(向右推) - 选中多行后使用,每行独立应用当前缩进规则(Tab 或空格数),不破坏混用结构
- 若当前使用空格缩进且设为 4 列,
Ctrl+[就删前 4 个空格;若开头是 Tab,则删一个 Tab 字符
想实现“拖着代码块左右滑动”?得靠鼠标或插件
纯键盘流无法模拟“横向拖拽”,但有两个务实替代路径:
- 鼠标操作:选中多行 → 把光标移到行首左侧空白区(出现 ✋ 图标)→ 按住左键横向微移(无效),必须上下拖才触发插入;横向拖拽在 Sublime 中无意义,别试
- 插件方案:安装
MoveLines或Alignment仍不解决左右位移;真正可用的是Text Pastry(用于批量插入)或自定义 keymap 绑定indent/unindent到你喜欢的组合键 - 临时绕过:用
Ctrl+Shift+P调出命令面板 → 输入unindent或indent→ 回车执行,适合偶发需求
最易被忽略的一点:Sublime 的缩进操作永远基于「当前视图的 tab width 设置」和「文件实际使用的缩进字符」。如果你在混合空格与 Tab 的文件里批量按 Ctrl+[,有些行删空格、有些行删 Tab,视觉上可能错位——这不是 bug,是你得先统一缩进风格再批量操作。











