duplicate-line-or-selection插件无默认快捷键,需手动绑定;其命令duplicate-line-or-selection:duplicate支持整行、选区、多光标等一致复制行为。

duplicate-line-or-selection 默认快捷键是什么
这个插件没有预设全局快捷键,安装后必须手动绑定——它只提供命令 duplicate-line-or-selection:duplicate,不自动占用任何键位。你看到的“Ctrl+Shift+D 复制行”其实是 Atom 原生功能,和该插件无关。
常见误解是把原生 Ctrl+Shift+D 当作插件行为,结果配置插件后反而冲突或失效。
- 原生
Ctrl+Shift+D(Windows/Linux)或Cmd+Shift+D(macOS):仅复制当前行,光标未选中时生效;已选中内容时退化为普通复制 -
duplicate-line-or-selection:duplicate命令:支持复制整行、选中文本、多行块、甚至多个 caret 位置,行为更一致 - 插件默认不覆盖原生键位,也不注册快捷键,需进
keymap.cson或设置界面手动绑定
怎么给 duplicate-line-or-selection 绑定快捷键
推荐用 Atom 的图形化快捷键设置,比手写 keymap.cson 更安全,尤其对缩进敏感或含特殊符号的路径。
- 打开 Settings → Keybindings → 搜索
duplicate-line-or-selection:duplicate - 点击右侧 “+” 添加快捷键,输入你想用的组合,比如
ctrl-alt-d(避开原生Ctrl+Shift+D冲突) - 若需跨平台统一,macOS 上对应写
cmd-alt-d,Atom 会自动适配 - 绑定后,可在 Key Binding Resolver(
Ctrl+./Cmd+.)里验证是否生效、有无冲突
为什么 Ctrl+Shift+D 按了没反应或复制错行
根本原因不是插件坏了,而是快捷键被其他包劫持或触发条件不满足。
- 装了
vim-mode-plus或emmet后,Ctrl+Shift+D可能被重映射为其他操作,查 Key Binding Resolver 就能定位 - 光标落在注释、字符串、JSX 属性值内时,原生复制行逻辑可能误判“当前行”边界,导致复制空行或上一行
-
duplicate-line-or-selection在这些场景下更鲁棒:它按编辑器视图的物理行计算,不依赖语法解析 - 如果绑定了插件命令但没生效,检查插件是否启用(Settings → Packages → 搜索名 → 确认 Enable 开关打开)
复制多行或列编辑时容易漏掉什么
插件本身支持多行和多 caret,但实际效果取决于你启动它的上下文。
- 想复制连续多行?先用
Ctrl+L选中第一行,再Shift+↓扩展选区,最后触发duplicate-line-or-selection:duplicate - 想在多个 caret 位置同时复制?必须先用
Ctrl+Click或Ctrl+D加好光标,再执行命令——否则只作用于主光标 - 列模式下(Alt+拖拽)复制,插件会把每列光标所在行都复制一遍,不是复制列内容本身;如需复制纯列块,得先用
Ctrl+Shift+P调出Editor: Select Line配合列选 - 复制后粘贴,注意缩进是否混用 Tab/Space:插件不自动对齐,建议粘贴后立刻用
Ctrl+Shift+I格式化
真正麻烦的不是配快捷键,而是不同场景下“当前行”的定义差异——原生逻辑看语法结构,插件看视觉行,而你在改 JSX 时往往需要后者。











