Gibt es eine Verknüpfung für Duplicate Line Befehl in Visual Studio 2008?
Einige ähnliche Beispiele:
(Bearbeiten) Diese Funktion ist jetzt in VS2017 integriert: Ctrl + E, V 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:
Siehe diese Referenz für weitere Informationen.
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.
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:
- gehe zu Extras-> Optionen ...
- klicken Sie unter Umgebung auf Tastatur
- geben Sie in das Textfeld "Show Commands Containing" "duplicate" ein (dies entspricht dem Namen, den Sie dem Modul gegeben haben).
- sie sollten jetzt das Makro in der Liste unten sehen
- wählen Sie "Texteditor" aus der Liste "Neue Verknüpfung verwenden in"
- 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)
- klicken Sie auf die Schaltfläche "Zuweisen"
- sie sollten jetzt die Verknüpfung in dem Textfeld "Shortcuts for selected command" anzeigen
- klicken Sie auf die Schaltfläche OK
Und das ist es. Genießen!
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.
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.
Ctrl + C + V Funktioniert für mich auf VS2012 ohne Erweiterung.
Ctrl + D arbeitet für mich in VS2012 mit Resharper. Es ist der Hotkey von Resharper.
In Visual Studio 2013 können Sie verwenden Ctrl+C+V
Hier ist ein Makro, das auf dem in dem von Wael veröffentlichten Link basiert, jedoch in den folgenden Bereichen verbessert wurde:
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
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
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.
In Visual Studio Code (WebMatrix):
Zeilen nach unten kopieren: Shift + Alt + down
Zeilen kopieren: Shift + Alt + up
Zeilen löschen: Ctrl + Shift + k
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.
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.
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
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"/>
...
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.
In Visual Studio 2008 können Sie verwenden CTRL + C + V
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 :-)
In Visual Studio 2017 und möglicherweise in einer anderen Version werden keine Makros oder Erweiterungen benötigt .
Tools > Options > Environment > Keyboards
Show commands containing:
Edit.Duplicate
Press shortcut keys:
und drücken Sie Ctrl + D und klicken Sie auf die Schaltfläche Assign
OK
, um die neue Tastenkombination zu speichernFür diejenigen, die diese Frage noch in Visual Studio nach 2008 sehen, wurde ein echtes Edit.Duplikat hinzugefügt:
Der gewünschte Befehl lautet Edit.Duplicate. Es ist zugeordnet zu CtrlE, CtrlV. Dies wird nicht überschreibt Ihre Zwischenablage.
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.
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" :)
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 Autostart
in 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 clips
name__, 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
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.
Ctrl + D ist eine neue Verknüpfung, die in VS 2017 v15.6 eingeführt wurde und genau das zu tun scheint Ctrl + E, V
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
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
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