web-dev-qa-db-ger.com

Visual Studio: Tastenkürzel: Zeile duplizieren

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

Einige ähnliche Beispiele:

377
Posto

In Visual Studio 2017

(Bearbeiten) Diese Funktion ist jetzt in VS2017 integriert: Ctrl + EV dupliziert eine Zeile, wenn nichts ausgewählt ist, oder dupliziert die Auswahl. Sie können es einer anderen Tastenkombination zuweisen oder es im Menü finden:

Duplicate line in VS2017

Siehe diese Referenz für weitere Informationen.

Vor VS2017, integrierte Methode unter Verwendung der Zwischenablage

Wie @cand bereits erwähnt, können Sie dies einfach tun Ctrl + C ; Ctrl + V.

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

Makrolösung (vor VS2017)

Wenn Sie eine umfassendere Lösung implementieren möchten, eine einfachere Tastenkombination erstellen oder die Zwischenablage nicht bearbeiten möchten, lesen Sie diese Anleitung:

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, rufen Sie einfach den Makro - Explorer auf ("Extras -> Makros -> Makro - Explorer") oder Alt+F8) und kopieren Sie den Code und fügen Sie ihn in ein neues Modul ein. Weisen Sie ihm jetzt einfach eine Tastenkombination zu:

  1. gehe zu Extras-> Optionen ...
  2. klicken Sie unter Umgebung auf Tastatur
  3. geben Sie in das Textfeld "Show Commands Containing" "duplicate" ein (dies entspricht dem Namen, den Sie dem Modul gegeben haben).
  4. sie sollten jetzt das Makro in der Liste unten sehen
  5. wählen Sie "Texteditor" aus der Liste "Neue Verknüpfung verwenden in"
  6. setzen Sie den Fokus in das Textfeld "Tastenkürzel drücken" und drücken Sie die Tastenkombination, die Sie verwenden möchten (Ctrl+Shift+D in meinem Fall)
  7. klicken Sie auf die Schaltfläche "Zuweisen"
  8. sie sollten jetzt die Verknüpfung in dem Textfeld "Shortcuts for selected command" anzeigen
  9. klicken Sie auf die Schaltfläche OK

Und das ist es. Genießen!

345
Wael Dalloul

Es gibt eine kostenlose Erweiterung, die Sie herunterladen können hier , mit der Sie Zeilen duplizieren können, ohne den Inhalt der Zwischenablage zu ersetzen.

Standardmäßig ist es gebunden an Alt + DSie können es jedoch beliebig ändern, indem Sie auf Extras-> Optionen-> Umgebung-> Tastatur klicken. Geben Sie "Duplizieren" in das Suchfeld ein und suchen Sie nach "Edit.DuplicateSelection" und bearbeiten Sie die Verknüpfung nach Ihren Wünschen. ich bevorzuge Ctrl + D im Einklang mit anderen Editoren zu sein.

127
Ben

Es ist einfach Ctrl + C ; Ctrl + V , überprüfe dies link . Solange Sie keinen Text auswählen, wird die Zeile dupliziert, über der sich der Cursor befindet, wenn Sie drücken Ctrl+C.

88
cand

Ctrl + C + V Funktioniert für mich auf VS2012 ohne Erweiterung.

71
nGoline

Ctrl + D arbeitet für mich in VS2012 mit Resharper. Es ist der Hotkey von Resharper.

30
sawe

In Visual Studio 2013 können Sie verwenden Ctrl+C+V

27
Vazgen Torosyan

Hier ist ein Makro, das auf dem in dem von Wael veröffentlichten Link basiert, jedoch in den folgenden Bereichen verbessert wurde:

  • etwas kürzer
  • etwas schneller
  • bemerkungen :)
  • verhält sich für Zeilen, die mit "///" beginnen
  • kann 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
20
Mark Foreman

Wenn Sie Eclipse-Linien (oder Blöcke) duplizieren möchten, verwenden Sie CTRL+ALT+UP oder CTRL+UP+DOWNUnten poste ich Makros für diesen Zweck:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics

Public Module DuplicateLineModule
    Sub DuplicateLineDown()
        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

        lineNumber = selection.TopLine
        line = selection.Text

        selection.MoveToDisplayColumn(selection.BottomLine, 0)
        selection.EndOfLine()
        selection.Insert(vbNewLine & line)
    End Sub
    Sub DuplicateLineUp()
        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

        lineNumber = selection.BottomLine
        line = selection.Text

        selection.MoveToDisplayColumn(selection.BottomLine, 0)
        selection.Insert(vbNewLine & line)
        selection.MoveToDisplayColumn(lineNumber, 0)
    End Sub
End Module
11
Krzysztof

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

Hier ist der Link zum Herunterladen der Erweiterung von Microsoft.com.

10
Daniel

In Visual Studio Code (WebMatrix):

Zeilen nach unten kopieren: Shift + Alt + down

Zeilen kopieren: Shift + Alt + up

Zeilen löschen: Ctrl + Shift + k

8
mghhgm

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

Markieren Sie die Zeile, die Sie duplizieren möchten. Drücken Sie die Steuerungstaste, klicken Sie mit der Maus auf den hervorgehobenen Text und ziehen Sie ihn an die gewünschte Stelle. Der markierte Text wird dupliziert.

7
Warty

Da ich in meinem Visual Studio 2013 keine Makros verwenden kann, habe ich ein Visual Studio-Plugin gefunden (ich verwende es in den Jahren 2012 und 2013). Auswahl duplizieren dupliziert Auswahlen und ganze Linien - sie müssen nur teilweise ausgewählt werden. Die Standardverknüpfung ist ALT + D.

7
Lebewesen

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

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

5
Alireza Noori

Ich habe das von Wael gepostete Makro verwendet: Doppelter Zeilenbefehl für Visual Studio , aber es hat vor einer Woche aufgehört zu funktionieren Nahm ich wegen eines Windows-Updates an. Und ich hatte Recht, seit Februar 2014 wurden Makros in VS2010 (und anscheinend 2008) deaktiviert.

Um dies zu beheben, müssen Sie entweder die Sicherheitsupdates deinstallieren oder eine Codezeile in die Konfigurationsdateien einfügen, wie hier gezeigt hier .

Auf einem 64-Bit-Windows-Computer lauten die Standardpfade zu diesen Dateien:

  • C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.config
  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config

    ...
    <configuration>
        <runtime>
            <AllowDComReflection enabled="true"/>
            ...
    

    editor screenshot

Sie MÜSSEN Ihren Texteditor mit Administratorrechten ausführen, sonst hat er gewonnen funktioniert nicht! Hoffentlich hilft dies allen anderen, denen plötzlich die Makrofunktionalität entzogen wird.

4
MasterHD

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

3
user5460893

Setzen Sie einfach Ihre Maus auf die Linie, um zu kopieren und zu tun CTRL+C ,danach CTRL+V in der gleichen Zeile. Funktioniert wie Zauberei :-)

3

In Visual Studio 2017 und möglicherweise in einer anderen Version werden keine Makros oder Erweiterungen benötigt .

  1. Gehe zu Tools > Options > Environment > Keyboards
  2. Schreibe unter Show commands containing:Edit.Duplicate
  3. Setzen Sie den Cursor auf Press shortcut keys: und drücken Sie Ctrl + D und klicken Sie auf die Schaltfläche Assign
  4. klicken Sie auf OK, um die neue Tastenkombination zu speichern

enter image description here

2
ewwink

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

  • CTRL+EV
  • CTRL+D (VS 2017 15.6+)
2
icanfathom

Der gewünschte Befehl lautet Edit.Duplicate. Es ist zugeordnet zu CtrlECtrlV. Dies wird nicht überschreibt Ihre Zwischenablage.

1
HaveSpacesuit

In Visual Studio 2010 kopieren Sie die gesamte Zeile, in der sich der Cursor befindet CTRL + INSERT dann kannst du verwenden Ctrl + V oder SHIFT + INSERT um es einzufügen.

1
Crackerjack

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

Meine Geschichte: begann in einer neuen Firma zu arbeiten, verwendete Visual Studio noch nie. Eines der ersten Dinge - wie man eine Linie dupliziert. Nachdem Sie das Makro ReSharper eingerichtet hatten, sagte es mir: Möchten Sie meine Abkürzung ersetzen, die lautet: "Text duplizieren" :)

1
Michal Stefanow

VS 2017 seine Ctrl + D oder Ctrl + C; Ctrl + V Beide arbeiten für mich.

Ich verwende den Anwendungslink: AutoHotkey mit dem folgenden 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 Autostartin Windows.
Dieses Skript schützt Ihre Zwischenablage.
Wenn Sie neugieriger sind, würden Sie Verknüpfungen zu diesem aktivierbaren Skript hinzufügen.
Ich verwende manchmal ein sehr beeindruckendes Multi Clipboard-Skript, um mit vielen clipsname__, die auf der Festplatte gespeichert sind, einfach umzugehen und sie mit zu verwenden CTRL+C,X,V Kopieren, Einfügen, Ausschneiden, Weiter, Zurück, Löschen, Alles 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
1
MrHIDEn

für Visual Studio 2012, 2013, 2015, 2017 folgen Sie dem Link und laden Sie die Erweiterung herunter

https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection

Gehen Sie nun zu Extras> Optionen> Tastatur und geben Sie "Duplizieren" in das Suchfeld ein (die vollständige Befehlszeichenfolge lautet "Edit.DuplicateSelection"). Hier können Sie es an jede Verknüpfung binden, wie Sie es auch bei jedem anderen Befehl tun würden.

1

Ctrl + D ist eine neue Verknüpfung, die in VS 2017 v15.6 eingeführt wurde und genau das zu tun scheint Ctrl + EV

Strg + D dupliziert die Zeile, in der sich der Cursor befindet, und fügt sie direkt unter der fokussierten Zeile ein. Wenn Sie eine bestimmte Codemenge duplizieren möchten, wählen Sie einfach den zu duplizierenden Codeabschnitt aus, bevor Sie den Befehl "Code duplizieren" aufrufen.

Es wird nicht Ihre Zwischenablage beeinflussen

Quelle

0
Kautsky Lozano

in VS2019 und auch in VS2017 können Sie Extras-> Optionen-> Tastatur und Sie auswählen Sie können in der Dropdown-Liste Schema die Option Resharper (Visual Studio) auswählen und erhalten eine Mapping wie wenn Sie Resharper verwenden, in diesem Fall Ctrl + D wird den Trick zum Duplizieren der Zeile tun. Wie auch immer, basierend auf Dokumentation sollte dies in Visual Studio 2017 Version 15.8 oder höher

0
ddieppa

Keine Antwort, nur eine nützliche Ergänzung: Als Freebie habe ich gerade ein RemoveLineOrBlock-Makro erfunden (na ja ... ähm ... den von Lolo geposteten Code angepasst). 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
0
Peter Perháč