duplicate_line 是 sublime text 内置的原生重复行命令,windows/linux 用 ctrl+shift+d、macos 用 cmd+shift+d,保留缩进与空格,不操作剪贴板,多行选中时逐行复制,不处理折叠区域。

duplicate_line 命令就是原生重复行功能
Sublime Text 从 2 开始就内置了 duplicate_line 命令,它不依赖插件、无需配置,默认就可用。Windows/Linux 是 Ctrl+Shift+D,macOS 是 Cmd+Shift+D。光标停在任意位置(哪怕在单词中间或空行),按一次就原样复制当前行并插入到下一行,缩进、空格、Tab 全部保留。
别把 duplicate_line 和复制到剪贴板搞混
很多人按完 Ctrl+Shift+D 后切到浏览器按 Ctrl+V,发现粘出来不是刚“复制”的那行——因为 duplicate_line 根本没碰剪贴板。它只是编辑器内部插入副本。
- 要真把某行内容复制进系统剪贴板,得先用
Ctrl+L(选中整行),再按Ctrl+C - 如果光标在空行上按
Ctrl+Shift+D,结果就是多出一个空行,不是报错也不是无响应 - 多行被选中时按该快捷键,会为每一行都执行一次
duplicate_line,3 行变 6 行,容易误操作
快捷键被占用或失效时怎么排查
如果 Ctrl+Shift+D 没反应,大概率是快捷键冲突或命令被禁用:
- 打开命令面板
Ctrl+Shift+P(Win)或Cmd+Shift+P(Mac),输入duplicate_line,看是否能手动触发 - 检查是否装了插件(比如 Emmet、Vintage、某些主题包)覆盖了该快捷键;可在
Preferences → Key Bindings里搜索duplicate_line确认绑定是否存在 - 若想改快捷键,直接在用户 key bindings 文件里加一条:
{ "keys": ["ctrl+alt+d"], "command": "duplicate_line" }
多行批量重复的边界情况要注意
选中 N 行后按 Ctrl+Shift+D,实际行为是「对每行分别 duplicate」,不是「把这 N 行当一个块复制一次」:
- 选中第 2–4 行(共 3 行)→ 插入 3 行新内容,分别位于原第 3、4、5 行位置
- 若想把多行当整体复制一次,得先
Ctrl+C(确保已选中),再Ctrl+V粘贴 - 该命令不处理折叠区域:如果某行被折叠,
duplicate_line仍会复制展开后的逻辑行,不是折叠后的单行显示
duplicate_line 就是唯一该用的命令;所有其他绕路方式(比如模拟选中+复制粘贴)都会引入缩进错位、剪贴板污染或光标跳转问题。











