У Visual Studio 2010 нет сочетания клавиш "join lines"?
EDIT. То есть, когда в строке X где угодно, я нажимаю клавишу быстрого доступа один раз, а затем линия X + 1 присоединяется к строке X (исключая CR между ними, так сказать)
У Visual Studio 2010 нет сочетания клавиш "join lines"?
EDIT. То есть, когда в строке X где угодно, я нажимаю клавишу быстрого доступа один раз, а затем линия X + 1 присоединяется к строке X (исключая CR между ними, так сказать)
Как я знаю, это не так.
Однако вы можете создать и сохранить новый макрос VS, используя следующий код:
Sub JoinLines()
DTE.ActiveDocument.Selection.EndOfLine()
DTE.ExecuteCommand("Edit.Delete")
DTE.ActiveDocument.Selection.EndOfLine()
End Sub
и назначить ему сочетание клавиш (например, CTRL + j)
Этот код будет присоединяться к текущей строке с той, что находится прямо под ней.
Это не совсем то, что вы хотите, но тем не менее я считаю это полезным.
Если вы находитесь в конце первой строки, нажмите Ctrl + Del, чтобы присоединиться к следующей строке и удалить любое свободное пространство между ними.
Вы все еще должны быть в конце строки, но это будет работать практически для каждого редактора без каких-либо изменений.
Я использую расширение CodeMaid для этого, он предоставляет ярлык Ctrl + M Ctrl + J для объединения строк (и некоторых других полезные вещи)
Если вы хотите, чтобы функция соединения действовала как 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).
Попробуйте End, а затем последовательность Delete.
End перемещается в конец строки, а клавиша Delete удаляет EOL после курсора.
Я использовал 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