Выключить полную копию строки в Visual Studio

В Visual Studio 2010 есть параметр, чтобы отключить команды копирования и вырезания, когда курсор находится на пустой строке и выбора нет. Однако, когда курсор не находится в пустой строке и вы нажимаете ctrl + C, он всегда копирует всю строку в буфер обмена. Я нахожу это очень раздражающим, потому что я всегда выделяю что-то первым, копирую его, а затем поместите курсор, где я хочу вставить его, и нажмите ctrl + V. Однако иногда я пропускаю v и нажимаю c, который заменяет текст в буфере обмена текстом текущей строки, и мне нужно начинать все сначала...

Кто-нибудь знает, как отключить копирование, когда нет выбора, независимо от того, находится ли курсор на пустой строке или нет?

Ответ 1

В настройках есть опция: Перейдите в Инструменты - Параметры → Текстовый редактор → ALl Языки → Применить вырезать или Копировать команды в пустые строки, когда нет выбора

Также, если вы случайно скопировали что-то в буфер обмена, вы можете использовать следующий ярлык: Ctrl + Shift + V - цикл через кольцо буфера обмена.

EDITED: Кажется, нет возможности включить его, потому что по умолчанию Ctrl-C назначается команде Edit.Copy, которая копирует текущую строку, если ничего не выбрано. Однако вы можете назначить следующий макрос для 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

Ответ 2

Я знаю, что это старый вопрос, но поскольку макросы больше не поддерживаются в новых версиях Visual Studio, я решил поделиться своим новым расширением (потому что не смог найти какие-либо существующие расширения): https://marketplace.visualstudio.com/пункты? ITEMNAME = KiwiProductions.CopyOnlySelection