visual-studio - duplicate - visual studio window title changer




Visual Studio: Abkürzung Key: Duplicate Line (17)

Da ich in Visual Studio 2013 keine Makros verwenden kann, habe ich ein Visual Studio Plugin gefunden (ich benutze es in 2012 und 2013). visualstudiogallery.msdn.microsoft.com/… dupliziert Auswahlen und ganze Zeilen - sie müssen nur teilweise ausgewählt werden. Die Standardverknüpfung ist ALT + D.

Gibt es eine Verknüpfung für den Befehl Duplicate Line in Visual Studio 2008?

Einige ähnliche Beispiele:

  • In Notepad++ kann ich die aktuelle Zeile mit: Strg + D duplizieren
  • in EditPlus : Strg + J
  • in NetBeans : Strg + Umschalt + /
  • in Eclipse , Strg + Alt + /
  • in Vi/Vim , yy p
  • etc.

Der gewünschte Befehl ist Edit.Duplicate . Es ist Ctrl E , Strg V zugeordnet . Dadurch wird Ihre Zwischenablage nicht überschrieben.


Es gibt eine kostenlose Erweiterung, die Sie visualstudiogallery.msdn.microsoft.com/… herunterladen können, mit der Sie Zeilen duplizieren können, ohne den Inhalt der Zwischenablage zu ersetzen.

Standardmäßig ist es an Alt + D gebunden, aber Sie können es ändern, indem Sie auf Extras-> Optionen-> Umgebung-> Tastatur gehen. Geben Sie "Duplicate" in das Suchfeld ein und suchen Sie nach "Edit.DuplicateSelection" und bearbeiten Sie die Verknüpfung nach Belieben. Ich bevorzuge Strg + D , um mit anderen Editoren konsistent zu sein.


Es ist einfach Strg + C ; Strg + V , überprüfen Sie diesen link . Solange Sie keinen Text auswählen, wird die Zeile, um die sich der Cursor befindet, dupliziert, wenn Sie Strg + C drücken.


Für diejenigen, die diese Frage in Visual Studio nach 2008 immer noch sehen, wurde ein echtes Edit.Duplicate hinzugefügt:

  • STRG + E , V
  • STRG + D (VS 2017 15.6+)

Hier ist ein Makro, das auf dem Link von Wael basiert, aber in den folgenden Bereichen verbessert wurde:

  • etwas kürzer
  • etwas schneller
  • Bemerkungen :)
  • verhält sich für Zeilen, die mit "///" beginnen
  • kann mit einem einzigen Undo rückgängig gemacht werden
Imports System
Imports EnvDTE
Imports EnvDTE80

Public Module Module1

    Sub DuplicateLine()
        Dim sel As TextSelection = DTE.ActiveDocument.Selection
        sel.StartOfLine(0) '' move to start
        sel.EndOfLine(True) '' select to end
        Dim line As String = sel.Text
        sel.EndOfLine(False) '' move to end
        sel.Insert(ControlChars.NewLine + line, vsInsertFlags.vsInsertFlagsCollapseToEnd)
    End Sub

End Module

Ich verwende den Anwendungslink: AutoHotkey mit dem Code, der in der Datei CommentDuplikateSaveClipboard.ahk gespeichert ist. Sie können Verknüpfungen bearbeiten / entfernen, es ist einfach.
Ich habe einen Link zu dieser Datei "Shortcut to CommentDuplikateSaveClipboard.ahk" in Autostart in Windows.
Dieses Skript schützt Ihre Zwischenablage.
Wenn Sie neugieriger sind, würden Sie Shortcuts zu thable / enable script hinzufügen.
Ich benutze manchmal sehr beeindruckende Multi Clipboard Skript, um einfach mit vielen clips auf der Festplatte zu speichern und mit Strg + C, X, V zu kopieren, einfügen, schneiden, nächste, vorherige, löschen Sie diese, alle löschen.

;CommentDuplikateSaveClipboard.ahk

!c:: ; Alt+C === Duplicate Line
^d:: ; Ctrl+D
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{END}{ENTER}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return

!x:: ; Alt+X === Comment Duplicate Line
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{LEFT}//{END}{ENTER}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return

!z:: ; Alt+Z === Del uncomment  Line
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{DEL}{HOME}{DEL}{DEL}
Clipboard := ClipSaved
ClipSaved =
return

!d:: ; Alt+D === Delete line
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{DEL}
return

!s:: ; Alt+S === Swap lines
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{CTRLDOWN}x{CTRLUP}{UP}{END}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return

!a:: ; Alt+A === Comment this line, uncomment above
Send, {END}{HOME}//{UP}{HOME}{DEL}{DEL}
return

Ich weiß nicht, ob das in Visual Studio 2008 vorhanden ist, aber in Visual Studio 2010+ können Sie dies einfach tun, indem Sie:

Wählen Sie nichts aus, drücken Sie dann Strg + C und dann (ohne etwas anderes zu tun) Strg + V


In Visual Studio 2008 können Sie STRG + C + V verwenden


In Visual Studio 2010 kopieren Sie die gesamte Zeile, auf der sich der Cursor befindet, mit STRG + EINFÜGEN, und Sie können STRG + V oder UMSCHALT + EINFÜGEN verwenden, um sie einzufügen .


Keine Antwort, nur eine nützliche Ergänzung: Als Freebie habe ich gerade (naja ... ähm ... den von Lolo geposteten Code angepasst) ein RemoveLineOrBlock-Makro erfunden. Genießen!

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module RemoveLineOrBlock

    Sub RemoveLineOrBlock()
        Dim selection As TextSelection = DTE.ActiveDocument.Selection
        Dim lineNumber As Integer
        Dim line As String

        If selection.IsEmpty Then
            selection.StartOfLine(0)
            selection.EndOfLine(True)
        Else
            Dim top As Integer = selection.TopLine
            Dim bottom As Integer = selection.BottomLine

            selection.MoveToDisplayColumn(top, 0)
            selection.StartOfLine(0)

            selection.MoveToDisplayColumn(bottom, 0, True)
            selection.EndOfLine(True)
        End If

        selection.LineDown(True)
        selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn,True)

        selection.Delete()

        selection.MoveToDisplayColumn(selection.BottomLine, 0)
        selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText)

    End Sub

End Module

Obwohl mir bewusst ist, dass dies keine Tastenkombination ist, dachte ich, dass ich das hinzufügen würde, da es nicht die Verwendung der Zwischenablage erfordert und einigen Leuten helfen könnte.

Markieren Sie die Zeile, die Sie duplizieren möchten. Drücken Sie die Steuerung, klicken Sie mit der Maus auf den markierten Text und ziehen Sie ihn an die gewünschte Stelle. Es wird den markierten Text duplizieren.


Versuchen Sie für Visual Studio 2010, diese Befehle für die schnelle Zeilenvervielfältigung zu verwenden (verwendet die Zwischenablage):

  • Klicken Sie auf die Zeile, die Sie kopieren möchten. Strg + C kopiert diese Zeile.

  • Drücken Sie dann Strg + Umschalt + Eingabe , um ein Leerzeichen unter dem Einfügepunkt einzufügen

    (Alternativ können Sie auch Strg + Eingabe verwenden , um eine Leerzeile über dem Einfügepunkt einzufügen.)

  • Verwenden Sie dann einfach Strg + V, um die Zeile einzufügen.


Warum so viele langgezogene Methoden, um etwas so Einfaches zu erreichen? Das Herunterladen und Installieren der Erweiterung von Microsoft dauert weniger als eine Minute. Die Seite sagt, dass sie es standardmäßig an ALT + D binden wird, aber für mich hat es automatisch an CTRL + D in Visual Studio Community 2015 ohne irgendwelche Änderungen gebunden.

visualstudiogallery.msdn.microsoft.com/…


http://www.jetbrains.com/resharper/

Meine Geschichte: Ich habe angefangen in einer neuen Firma zu arbeiten, habe vorher noch nie Visual Studio benutzt. Eines der ersten Dinge - wie man Zeilen dupliziert. Nach dem Einrichten von Makro ReSharper sagte mir: Möchten Sie meine Verknüpfung ersetzen, die war: "doppelten Text" :)


Strg + C + V funktioniert für mich auf VS2012 ohne Erweiterung.


Eingebaute Methode mit Zwischenablage

Als @cand erwähnt, können Sie einfach Strg + C ; Strg + V.

Strg + C kopiert die Zeile, wenn nichts ausgewählt ist.

Makro-Lösung

Wenn Sie eine vollständigere Lösung implementieren möchten, um beispielsweise eine einfachere Tastenkombination zu erstellen oder die Zwischenablage nicht zu ändern, finden Sie in diesem Handbuch folgende Informationen:

Doppelter Zeilenbefehl für Visual Studio

Visual Basic:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics

Public Module DuplicateLastLineModule
Sub DuplicateLine()
Dim line As String
DTE.ActiveDocument.Selection.StartOfLine(0)
DTE.ActiveDocument.Selection.EndOfLine(True)
line = DTE.ActiveDocument.Selection.Text
DTE.ActiveDocument.Selection.EndOfLine()
DTE.ActiveDocument.Selection.NewLine()
DTE.ActiveDocument.Selection.StartOfLine(0)
DTE.ActiveDocument.Selection.Text = line
End Sub
End Module

Um das Makro zu erstellen, gehen Sie einfach zum Makro-Explorer ("Extras-> Makros -> Makro-Explorer" oder Alt + F8 ) und kopieren Sie den Code in ein neues Modul. Jetzt geben Sie einfach eine Tastenkombination dazu:

  1. gehe zu Extras-> Optionen ...
  2. Klicken Sie unter Umgebung auf Tastatur
  3. Geben Sie im Textfeld "Show Commands Containing" "duplicate" ein (dies entspricht dem Namen, den Sie dem Modul gegeben haben.)
  4. Sie sollten nun das Makro in der Liste unten sehen
  5. Wählen Sie "Texteditor" aus der Liste "Neue Verknüpfung verwenden in"
  6. setze den Fokus in das Textfeld "Tastenkombinationen drücken" und drücke die Kombination auf der Tastatur, die du dafür verwenden möchtest (in meinem Fall Strg + Shift + D )
  7. Klicken Sie auf die Schaltfläche "Zuweisen"
  8. Sie sollten nun die Verknüpfung im Textfeld "Verknüpfungen für ausgewählten Befehl" sehen
  9. Drücken Sie die OK-Taste

Und das ist es. Genießen!







keyboard-shortcuts