Sublime原生不支持直接在当前光标处复制上一行,唯一稳定路径是↑→Ctrl+L→Ctrl+C:先上移光标至上一行任意位置,再Ctrl+L选中(首次不含换行符,二次含),最后Ctrl+C写入系统剪贴板。

不能直接“在当前光标处复制上一行”——Sublime 原生没有这个功能,所有看似一键的操作,本质都是“先跳转+选中+复制”三步的组合。
为什么 Ctrl+Shift+D 复制不了上一行
Ctrl+Shift+D 执行的是 duplicate_line 命令,它只认「光标所在行」,不会向上查找。哪怕你刚按了 ↑ 移到上一行,只要没触发选中(比如没按 Ctrl+L),Ctrl+Shift+D 仍会作用于新光标位置——也就是你以为的“上一行”,但它实际是把那一行再克隆到它下方,而不是复制到你当前光标所在位置。
- 常见错误:光标在第5行 → ↑ 到第4行 →
Ctrl+Shift+D→ 第5行下方插入第4行副本,但你真正想粘贴的位置(比如第5行开头)根本没动 -
Ctrl+Shift+D不操作系统剪贴板,切到终端按Ctrl+V粘出的仍是上次内容 - 它不支持“插入到当前光标处”,只支持“插入到当前行下方”
真正能落地的三步法:↑ → Ctrl+L → Ctrl+C
这是唯一稳定、跨文件类型、不依赖插件的路径。关键不是“快”,而是“每次都能得到预期结果”:
-
↑:把光标移到上一行任意位置(哪怕停在中间字符上,不影响) -
Ctrl+L:选中该整行(不含换行符;若需带换行符,再按一次Ctrl+L) -
Ctrl+C:内容进入系统剪贴板,可跨应用粘贴 - 完成后,用
↓或鼠标点回原位置,Ctrl+V即可
想一步到位?用 Ctrl+L + Ctrl+X + Ctrl+V 搬移更稳
如果目标是“把上一行挪到当前光标所在行的上方或中间”,比复制+粘贴更少出错:
-
↑移动光标到上一行 -
Ctrl+L选中它 -
Ctrl+X剪切(进剪贴板 + 删除原行) -
↓或↑回到目标位置,Ctrl+V粘贴 - 注意:
Ctrl+Shift+K虽然也能删整行,但它不进剪贴板,无法后续粘贴
高频输入时容易被忽略的细节
最常踩坑的不是快捷键记错,而是对“换行符是否包含”的误判:
- 第一次按
Ctrl+L:只选中行内容,不含换行符;粘贴到终端或 JSON 配置里可能连成一行 - 第二次按
Ctrl+L:才包含行尾换行符;但若光标本就在行尾,第一次就可能已含换行符 - 多行复制时,用
Ctrl+Shift+↑反向扩展比反复按 ↑ 更可靠,空行会被自动跳过 - 别信“光标停着就能
Ctrl+C复制整行”——这是插件行为,干净安装的 Sublime Text 4 默认不支持











