ctrl+shift+d(windows/linux)或cmd+shift+d(macos)是sublime中唯一真正“一步到位”的整行复制操作,原样复制当前行至下方,不依赖选中、不触碰剪贴板、光标自动定位新行开头。

直接按 Ctrl+Shift+D(Windows/Linux)或 Cmd+Shift+D(macOS)就行,不需要选中、不依赖剪贴板、光标停在哪行就复制哪行。
为什么 Ctrl+Shift+D 是唯一真正“一步到位”的操作
它执行的是 Sublime 原生的 duplicate_line 命令,行为固定:在当前行下方插入一模一样的副本,缩进、空格、Unicode 字符、注释全部原样保留。光标自动跳到新行开头,立刻可编辑。
- 哪怕光标停在行中间某个字母上,也能准确识别“这是第几行”并复制整行
- 不碰系统剪贴板,所以不会覆盖你刚从浏览器复制的 URL 或密码
- 没有“先选中再操作”的延迟,比
Ctrl+L→Ctrl+C→切窗口→Ctrl+V少 3 步 - 多行选中时按一次,会为每一行都生成一个副本——适合批量写测试桩、补全日志模板
常见误操作和对应现象
这个快捷键看似简单,但几个典型错误会让结果完全偏离预期:
- 光标停在空行 → 按下后只复制一个空行,容易被忽略,导致以为“没反应”
- 已选中部分文本(比如只选了函数名),再按
Ctrl+Shift+D→ 不是复制整行,而是把选区 duplicate 到下一行(内容变少、格式错乱) - 选中了 5 行却只想复制其中 1 行 → 结果新增 5 行,代码行数翻倍,需手动删
- Mac 用户按
Cmd+Shift+D没反应 → 很可能是输入法、Karabiner 或系统快捷键拦截了Cmd键,建议去Preferences → Key Bindings查看是否被覆盖
Ctrl+Shift+D 和 Ctrl+Shift+↑/↓ 别混用
这两个组合键长得像,但作用完全不同,误按会导致代码顺序意外变更:
-
Ctrl+Shift+D是复制(insert),原行不动,下方多一行 -
Ctrl+Shift+↑是交换(swap),把当前行挪到上一行上方,原位置消失;Ctrl+Shift+↓同理,是向下挪,不是加行 - 在 import 块、配置项、函数调用链里误用
Ctrl+Shift+↓,可能让依赖顺序出错,且Ctrl+Z虽能撤回,但节奏一断就容易漏看
真正要“复制到别处”,不能靠 Ctrl+Shift+D
它不进剪贴板,这点必须刻进本能。想把某行内容粘到微信、终端、Git 提交信息或另一个文件里,唯一可靠路径仍是:Ctrl+L → Ctrl+C。
-
Ctrl+L第一次:精准选中当前行(不含换行符);再按一次:包含换行符(粘贴时自动换行) - 连续按三次
Ctrl+L:快速选中连续三行,然后Ctrl+C一次性进剪贴板 - 别用鼠标拖选长代码行——折叠区域、滚动偏移、缩进嵌套深时,极易拖歪,
Ctrl+L完全无视这些干扰
最易被忽略的细节是:Ctrl+Shift+D 的“复制”仅限于当前 Sublime 窗口内,它不产生任何剪贴板副作用,也不受语言模式影响;而所有依赖剪贴板的操作(包括 Ctrl+C),一旦没先 Ctrl+L,在 JSON/YAML/含 emoji 的行里大概率失效——这不是 Bug,是 Sublime 的设计逻辑。











