sublime text 默认无复制当前行快捷键,需通过三击选中后复制、duplicate_line伪复制或自定义expand_selection+copy键绑定实现;macos/windows快捷键需对应调整,配置后无需重启即生效。

Sublime Text 默认不提供“复制当前行”的原生快捷键,但可以通过命令或简单配置实现,且不同操作系统快捷键不一致——别直接搜“Ctrl+C”,那只是复制选中内容,没选中时无效。
为什么 Ctrl+C 在没选中时不能复制整行
Sublime 的 ctrl+c(Windows/Linux)或 cmd+c(macOS)严格遵循“复制选区”语义。如果光标在行内但未选中任何文本,它什么也不做。这不是 bug,是设计逻辑:Sublime 把“行操作”归为编辑命令,而非编辑器默认行为。
- 常见错误现象:
ctrl+c按了没反应,以为快捷键失效,其实是没触发条件 - 真正起效的前提:必须先让 Sublime “知道你要操作的是这整行”——要么手动选中,要么用命令自动完成选中+复制
- 最简替代方案:三击行首空白处(或双击行号侧边栏)可快速选中整行,再按
ctrl+c;但效率低,不适合高频使用
用 command: duplicate_line 实现“伪复制”(最快上手)
Sublime 内置的 duplicate_line 命令本质是“复制当前行并粘贴在下一行”,虽然不是纯复制到剪贴板,但在多数场景(如调试、补全、临时参考)效果等价,且无需配置。
- Windows/Linux:
ctrl+shift+d - macOS:
cmd+shift+d - 注意:该命令会实际插入新行,如果只想复制不改动文档,需立刻
ctrl+z撤销粘贴动作(只留剪贴板内容) - 性能影响:无,命令原生支持,响应即时
配置自定义快捷键实现真·复制整行
要让 ctrl+alt+c(或其他组合)真正执行“选中当前行 → 复制 → 取消选中”,需添加自定义 key binding。这是唯一能 100% 匹配 IDE 风格操作的方式。
- 打开菜单:
Preferences → Key Bindings,右侧(用户键绑定)添加:
[
{
"keys": ["ctrl+alt+c"],
"command": "run_macro_file",
"args": {"file": "res://Packages/Default/Add Line in Clipboard.sublime-macro"}
}
]
但 Sublime 默认没有 Add Line in Clipboard.sublime-macro,所以更可靠的做法是用 expand_selection + copy 组合:
- 右侧键绑定中加入:
[
{
"keys": ["ctrl+alt+c"],
"command": "expand_selection",
"args": {"to": "line"}
},
{
"keys": ["ctrl+alt+c"],
"command": "copy",
"context": [
{"key": "selection_empty", "operator": "equal", "operand": true, "match_all": true}
]
}
]
- ⚠️ 关键细节:第二条绑定加了
context条件,确保只在无选区时光标在行内时才触发复制,避免干扰已有选择行为 - Windows 用户注意:
ctrl+alt+c可能被输入法或系统快捷键劫持,可改用ctrl+shift+c(但会和“复制文件路径”冲突),建议优先试ctrl+alt+c - macOS 用户把
ctrl换成cmd即可,但cmd+alt+c与系统截图快捷键冲突,推荐cmd+shift+c并确认是否覆盖了copy_path
插件方案(仅当需要高级控制时考虑)
如果你还想要“复制多行带行号”“排除空行”“自动 trim 尾部空格”等功能,可以装 CopyWithStyle 或 LineJuggler,但普通复制整行没必要——它们增加启动延迟,且配置复杂度远超需求。
-
CopyWithStyle提供copy_line命令,但需手动绑定快捷键,且最新版对 Sublime 4 兼容不稳定 - 真正容易被忽略的点:所有自定义快捷键在保存后立即生效,**不需要重启 Sublime**;但如果绑定失败,检查 JSON 语法是否多逗号、少引号,Sublime 不报错,只会静默忽略整条规则











