无论如何禁用Visual Studio(在我的情况下为2008)具有复制行(上面有文本)的相当烦人的功能,当CTRL-C被按下并且没有进行选择时光标处于打开状态?
我知道禁用复制空白行的选项。但这也让我发疯。
ETA:我不想自定义键盘快捷键。
ETA-II:我不是在寻找“工具->选项->文本编辑器->所有语言->应用剪切或复制到空白行...”。
无论如何禁用Visual Studio(在我的情况下为2008)具有复制行(上面有文本)的相当烦人的功能,当CTRL-C被按下并且没有进行选择时光标处于打开状态?
我知道禁用复制空白行的选项。但这也让我发疯。
ETA:我不想自定义键盘快捷键。
ETA-II:我不是在寻找“工具->选项->文本编辑器->所有语言->应用剪切或复制到空白行...”。
您可能遇到的真正问题是您使用CTRL+进行粘贴V。你不小心输入了 CTRL+ C,最终覆盖了剪贴板上的内容。据我所知,您无法禁用此功能,但是,解决此问题的方法是,您可以多次按++CTRL以备份您在 Visual Studio 中复制的内容堆栈。这不仅可以让您恢复最初复制的内容,而且您还会发现++在许多其他情况下非常有用。SHIFTVCTRLSHIFTV
如果您不愿意自定义键盘设置,那么Ctrl+C将始终是 Edit.Copy,如果未选择任何内容,它将复制当前行。如果你不愿意使用 VS 提供的工具来自定义界面,那你就做不到。
但是,以下工作:将此宏分配给Ctrl+ C:
Sub CopyOnlyIfSelection()
Dim s As String = DTE.ActiveDocument.Selection.Text
Dim n As Integer = Len(s)
If n > 0 Then
DTE.ActiveDocument.Selection.Copy()
End If
End Sub
我很确定 2008 年的方式与 2005 年的方式相同......查看关于“自定义键盘快捷键”的本教程(大约下降了 1/3)
http://msdn.microsoft.com/en-us/library/bb245788(VS.80).aspx
我不相信如果没有某种类型的 3rd 方剪贴板管理器可以做到这一点,它会阻止您用空字符串覆盖剪贴板内容。
我安装了免费的 SlickEdit 插件,它的 CommandSpy 功能显示Ctrl+C执行 Edit.Copy,无论您是否突出显示文本。因此,我想您的问题的答案是否定的。
但是,我确实记得当我第一次遇到这个功能时,它让我非常恼火。现在,当我在其他程序中尝试相同的技巧并且没有任何反应时,我依赖它并感到恼火。
Visual Studio 2019 和 2017 有一个名为 CopyOnlySelection 的扩展:
https://marketplace.visualstudio.com/items?itemName=KiwiProductions.CopyOnlySelection
这不会立即解决它,但会添加另一个名为 Edit.CopyOnlySelection 的命令,您可以将其绑定到 Ctrl+C(并从正常的 Edit.Copy 中删除 Ctrl+C)。