Visual Studio 2010 не имеет сочетания клавиш "линии соединения"? - PullRequest
20 голосов
/ 01 октября 2010

разве Visual Studio 2010 не имеет сочетания клавиш "соединить строки"?

РЕДАКТИРОВАТЬ - То есть, когда в строке X где-нибудь я нажимаю сочетание клавиш один раз, а затем строка X + 1 присоединяется к строке X(устраняя, так сказать, CR между ними)

Ответы [ 6 ]

20 голосов
/ 17 октября 2012

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

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

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

15 голосов
/ 24 августа 2011

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

4 голосов
/ 01 октября 2010

Насколько я знаю, это не так.

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

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

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

Этот код объединит текущую строку с той, что справа под ней.

2 голосов
/ 05 октября 2010

Если вы хотите, чтобы функция объединения действовала как 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 + Сдвиг + J приняты).

0 голосов
/ 12 июня 2015

Я использовал 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
0 голосов
/ 30 августа 2012

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

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

...