Ctrl+Shift+D(Windows/Linux)或 Cmd+Shift+D(macOS)是 Atom 原生复制行快捷键,需光标位于行内才生效;常见失效原因是插件劫持绑定,可通过快捷键解析器诊断并用 keymap.cson 强制重绑,禁用 duplicate-line-or-selection 插件可避免空行错位、多光标失效等问题。

直接按 Ctrl+Shift+D(Windows/Linux)或 Cmd+Shift+D(macOS)就行,这是 Atom 原生支持、开箱即用的操作,无需插件。
为什么 Ctrl+Shift+D 有时没反应
最常见原因是快捷键被其他插件劫持,比如 vim-mode-plus、atom-ide-ui 或键盘映射类插件。不是 Atom 坏了,而是绑定被覆盖了。
- 打开快捷键解析器:
Ctrl+.(Windows/Linux)或Cmd+.(macOS),再按Ctrl+Shift+D,看右侧是否显示editor:duplicate-lines - 如果显示
duplicate-line-or-selection:duplicate或空白/Unbound,说明插件干扰或未绑定 - 临时修复:在 Settings > Keybindings 中搜索
editor:duplicate-lines,点击铅笔图标重绑到Ctrl+Shift+D - 根治办法:在
~/.atom/keymap.cson里强制写死:'atom-text-editor:not([mini])':\n 'ctrl-shift-d': 'editor:duplicate-lines'
Ctrl+Shift+D 的行为边界必须清楚
它只在光标“落在某一行内”时才复制整行——不是悬停在行首左侧或行尾右侧,也不是选中了部分文本。
- 光标在行中任意位置(含空格),未选中 → 复制整行 + 行末换行符,新行插入其下方,光标落新行开头
- 已选中部分文本 → 只复制选中内容,不带换行,粘贴后可能和下一行连在一起
- 多光标分布在不同行 → 每个光标所在行各自复制一份,插入各自下方
- 选中 N 行 → 复制这 N 行整体,插入到选区下方(保持顺序)
别装 duplicate-line-or-selection 插件
这个插件表面是“智能判断复制行 or 复制选区”,实际破坏一致性,引发一堆隐性问题:
- 空行错位:光标落在空行行首左侧时,原生命令不响应,它却强行触发,结果复制出错位空行
- 多光标失效:多个光标时,常只复制第一个光标所在行,其余忽略
- 换行符丢失:手动复制选区时若漏掉行尾
\n,粘贴后两行挤成一行,是 Atom 用户最高频踩坑点 - 推荐做法:禁用该插件,用
keymap.cson自定义两个明确命令:'atom-text-editor:not([mini])':\n 'ctrl-shift-d': 'editor:duplicate-lines'\n 'ctrl-shift-x': 'core:copy'
前者永远复制整行,后者显式复制选区,职责分离,不翻车
真正容易被忽略的是光标位置——哪怕只差一个像素(行首左侧/行尾右侧),Ctrl+Shift+D 就会静默失效。别猜,按 Ctrl+L 先全选当前行再操作,是最稳的兜底方式。

















