Подтвердить что ты не робот

У Visual Studio 2010 нет сочетания клавиш "join lines"?

У Visual Studio 2010 нет сочетания клавиш "join lines"?

EDIT. То есть, когда в строке X где угодно, я нажимаю клавишу быстрого доступа один раз, а затем линия X + 1 присоединяется к строке X (исключая CR между ними, так сказать)

4b9b3361

Ответ 1

Как я знаю, это не так.

Однако вы можете создать и сохранить новый макрос VS, используя следующий код:

Sub JoinLines()
    DTE.ActiveDocument.Selection.EndOfLine()
    DTE.ExecuteCommand("Edit.Delete")
    DTE.ActiveDocument.Selection.EndOfLine()
End Sub

и назначить ему сочетание клавиш (например, CTRL + j)

Этот код будет присоединяться к текущей строке с той, что находится прямо под ней.

Ответ 2

Это не совсем то, что вы хотите, но тем не менее я считаю это полезным.

Если вы находитесь в конце первой строки, нажмите Ctrl + Del, чтобы присоединиться к следующей строке и удалить любое свободное пространство между ними.

Вы все еще должны быть в конце строки, но это будет работать практически для каждого редактора без каких-либо изменений.

Ответ 3

Я использую расширение CodeMaid для этого, он предоставляет ярлык Ctrl + M Ctrl + J для объединения строк (и некоторых других полезные вещи)

Ответ 4

Если вы хотите, чтобы функция соединения действовала как Vim (нажав Shift + J), используйте этот макрос, который присоединяется, вставляет пробел и помещает курсор после пробела:

Sub JoinLines()
    Dim textSelection As TextSelection = DTE.ActiveDocument.Selection
    With textSelection
        .EndOfLine()
        .Insert(" ")
        .Delete(1)
    End With
End Sub

Просто присвойте ему что-то вроде Alt + J (в качестве Ctrl + J и Ctrl + Shift + J).

Ответ 5

Попробуйте End, а затем последовательность Delete.

End перемещается в конец строки, а клавиша Delete удаляет EOL после курсора.

Ответ 6

Я использовал CodeMaid для этого, но он очень медленный с большими файлами. Чтобы воспроизвести поведение CodeMaid с помощью макроса, я объединил решения Ray Vega и javs в следующем:

    Sub JoinLines()
      DTE.ActiveDocument.Selection.EndOfLine()
      DTE.ExecuteCommand("Edit.WordDeleteToEnd")
      DTE.ActiveDocument.Selection.Insert(" ")
    End Sub

Примечание. Поскольку макросы были удалены в VS2013, я использую расширение Visual Commander, поэтому макрос действительно выглядит больше:

Imports EnvDTE
Imports EnvDTE80
Imports Microsoft.VisualBasic

Public Class C
  Implements VisualCommanderExt.ICommand

  Sub Run(DTE As EnvDTE80.DTE2, package As Microsoft.VisualStudio.Shell.Package) Implements VisualCommanderExt.ICommand.Run
    DTE.ActiveDocument.Selection.EndOfLine()
    DTE.ExecuteCommand("Edit.WordDeleteToEnd")
    DTE.ActiveDocument.Selection.Insert(" ")
  End Sub
End Class