VSCode克隆当前行的默认快捷键是Windows/Linux用Shift+Alt+↓(向下)或Shift+Alt+↑(向上),macOS用Shift+Option+↓或Shift+Option+↑,直接触发原生命令editor.action.copyLinesDownAction或copyLinesUpAction,不依赖剪贴板、不改变光标原始位置,开箱即用。

VSCode克隆当前行的默认快捷键是什么
Windows/Linux 用 Shift+Alt+↓ 向下克隆,Shift+Alt+↑ 向上克隆;macOS 对应 Shift+Option+↓ 和 Shift+Option+↑。这是 VSCode 原生命令 editor.action.copyLinesDownAction 和 editor.action.copyLinesUpAction 的默认绑定,开箱即用,不依赖剪贴板、不改变光标原始位置逻辑。
常见错误现象:按了没反应。最常踩的坑是输入法劫持——比如 Windows 上搜狗或微软拼音把 Alt+↓ 当作中英文切换,Mac 上 Karabiner 或触控板工具拦截 Option+↓。先切到英文输入法再试;确认焦点在编辑器内(不是终端、搜索框或设置页);笔记本用户留意是否需同时按 Fn 键激活方向键。
克隆多行时为什么不能连按 Shift+Alt+↓
因为第二次按的时候光标已在新插入的行上,克隆的是新行而非原始行。想批量克隆连续多行,得先选中目标行范围:
- 用
Shift+↓或Shift+↑手动选中多行(确保首尾行完整,含换行符) - 再按一次
Shift+Alt+↓,VSCode 会把整个选区原样复制到下方 - 如果选区跨折叠区域,复制的是展开后的源码,不是折叠后显示的文本
注意:一旦有选区,Shift+Alt+↓ 就只复制选区,不是整行——这点和“无选中时克隆当前行”的行为完全不同,容易误判。
Ctrl+C 能不能当克隆用?有什么隐患
可以,但不推荐用于克隆场景。未选中时按 Ctrl+C(Windows/Linux)或 Cmd+C(macOS)确实会隐式复制当前行(含换行符),但粘贴时行为不稳定:
- 光标停在上一行末尾时,
Ctrl+V会先换行再贴内容,视觉上多出空行 - 某些语言扩展(如 Pylance、ESLint)可能干扰隐式选行逻辑,导致只复制部分语句
- 终端面板获得焦点时,
Ctrl+C被解释为中断信号,根本不会触发复制 - 如果设置了
"editor.emptySelectionClipboard": false,该行为直接失效
真正需要“塞进剪贴板备用”,Ctrl+C 可用;目标是“立刻在上下方加一模一样的行”,Shift+Alt+↓ 更稳。
自定义快捷键时 command 名写错会怎样
写成 editor.action.duplicateSelection 或 editor.action.copyLine 都不行——前者没选中时啥也不干,后者根本不存在。必须用准确命令名:
- 向下克隆:
editor.action.copyLinesDownAction - 向上克隆:
editor.action.copyLinesUpAction - 绑定时
when条件别漏掉:editorTextFocus && !editorReadonly,否则在搜索框或只读文件里也会触发
改完 keybindings.json 保存后立即生效,但 JSON 格式错一个逗号就会报红,右下角提示“invalid json”,得手动排查。真正容易被忽略的是:这个操作永远复制整行(含缩进、空格、换行符),没有开关可关——如果你只想复制内容不复制缩进,说明你其实要的不是克隆,而是提取或重构。


















