ctrl+shift+d(windows/linux)或cmd+shift+d(macos)是sublime text内置duplicate_line命令的快捷键,用于在当前行下方原样复制一行,不操作剪贴板、保留缩进与空格,光标自动移至新行开头;若需复制到剪贴板供跨应用粘贴,须先按ctrl+l选中整行再按ctrl+c。

Ctrl+Shift+D 是原生支持的“当前行下方复制”快捷键
Sublime Text 内置的 duplicate_line 命令默认绑定在 Ctrl+Shift+D(Windows/Linux)或 Cmd+Shift+D(macOS),它不依赖选区、不操作剪贴板,直接在光标所在行正下方插入一模一样的副本。光标会自动跳到新行开头,缩进、空格、Tab 全部原样保留。
常见误操作包括:
- 按完
Ctrl+Shift+D立刻切到终端按Ctrl+V,结果粘出的是旧内容——因为该操作根本没碰系统剪贴板 - 光标停在空行,它就复制一个空行,不会跳过
- 已选中多行时按它,会为每一行都执行一次
duplicate_line,比如选中 3 行 → 新增 3 行,不是“把这 3 行整体复制下来”
想复制到剪贴板再粘贴?必须走 Ctrl+L → Ctrl+C
真正要把某行(或多行)内容“搬运”到其他程序(如终端、微信、浏览器、另一编辑器),唯一可靠路径是先选中、再复制进系统剪贴板:Ctrl+L → Ctrl+C。
Ctrl+L 的行为很确定:
- 第一次按:选中光标所在整行(不含换行符),粘贴后可能紧贴上一行
- 第二次按:扩展选区,包含换行符,粘贴时自动换行,适合命令片段或配置项
- 已有字符级选区(比如只选了几个字),
Ctrl+L会先清掉它,再选整行 - 连续多行?
Ctrl+L选第一行后,按Ctrl+Shift+↓向下逐行扩展,比鼠标拖更准
快捷键被覆盖或失效?检查 Key Bindings 和插件冲突
如果 Ctrl+Shift+D 或 Ctrl+L 没反应,大概率是快捷键被插件劫持或自定义绑定覆盖了。
排查步骤:
- 打开
Preferences → Key Bindings,左右两栏对比:左侧是默认绑定,右侧是用户自定义;确认Ctrl+Shift+D是否出现在右侧且未被错误覆盖 - 临时禁用插件:菜单
Preferences → Package Control → Disable Package,逐个关掉疑似插件(如 Vintage、Emmet、SideBarEnhancements) - macOS 用户注意:
Cmd+Shift+D可能被系统级工具(如 Karabiner)拦截,可尝试改用Ctrl+Shift+D测试 - 某些键盘布局下,
Shift键响应延迟也可能导致组合键识别失败
别指望 Ctrl+C 单独复制整行——这不是 bug,是设计逻辑
Sublime 的 copy 命令只作用于已有选区。光标停在某行中间时按 Ctrl+C,实际什么也没做,剪贴板内容不变。你在 JSON、YAML 或含 Unicode 的行里盲按,失效率极高;尤其粘到终端时少换行符,命令直接报错。
容易被忽略的关键点:
-
Ctrl+Shift+D和Ctrl+L → Ctrl+C解决的是两类问题:前者是“文件内快速克隆”,后者是“跨应用搬运”,目的不同,不能混用 - 连按
Ctrl+L第三次会选中“以空行为界的段落”,不再是单行——这个边界行为很多人没意识到,结果复制出一大块内容 - 鼠标拖选在折叠代码、长行换行显示异常、滚动偏移时极易偏移,而
Ctrl+L链式操作完全不受这些干扰











