在 Visual Studio 中,當光標位於空行(無選中文本)時按 Ctrl+C 或 Ctrl+X,默認會**複製/剪切整行**(含換行符)。這導致誤觸時覆蓋剪貼板原有內容,引發極差體驗。本文解析該行為由來、提供關閉方法、並介紹 循環剪貼板 恢復技巧。
Ctrl+C(剪貼板 = 目標代碼)Ctrl+V,手抖誤按 Ctrl+CCtrl+V 只能粘貼空行,光標下移VS 團隊設計初衷:方便快速複製整行(無需先選中)。但違背直覺——無選中時不應修改剪貼板。此行為自 VS 2002 引入,VS 2012+ 提供了關閉開關。
Alt+T, O)Apply Cut or Copy commands to blank lines when there is no selection設置後,空行按 Ctrl+C/X **無任何操作**,剪貼板內容保持不變,符合絕大多數編輯器習慣(Notepad++、VS Code、Sublime、IntelliJ 均為此行為)。
若誤觸發生剪貼板被覆蓋,**無需重新複製**,使用:
Ctrl+Shift+V 直到找回目標內容此功能獨立於系統剪貼板,僅記錄 VS 內部複製/剪切操作,極其實用。
| 版本 | 默認行為 | 關閉開關位置 |
|---|---|---|
| VS 2010 及之前 | 複製空行 | 無圖形界面關閉,需註冊表/宏 |
| VS 2012 - 2022 | 複製空行 | 工具 → 選項 → 文本編輯器 → 所有語言 → 取消勾選 |
| VS Code | 不複製空行 | editor.emptySelectionClipboard: false (默認關閉) |
// settings.json
{
"editor.emptySelectionClipboard": false // 空選中時不複製整行(默認 false)
}
關閉「空行複製」並掌握「循環剪貼板」,能讓你在 Visual Studio 中擁有與現代編輯器一致的、符合直覺的剪貼板體驗,杜絕誤觸丟代碼的焦慮。