it-swarm.com.de

Verschieben Sie die Verknüpfung in Visual Studio 2012 nach oben / unten

In VS2010 hatte ich eine Verknüpfung eingerichtet Alt+Up/Down Verschieben von Codezeilen nach oben oder unten, so wie ich es zu Java-Zeiten in Eclipse getan habe.

Nun, da Power Tools und Makros (wie ich diese Verknüpfung in VS2010 eingerichtet habe) in VS2012 nicht verfügbar sind, wie kann ich dies erreichen?

Ich habe gesehen, dass jemand erwähnt hat, dass Resharper dies kann, aber aus Liebe zu Feuer und Wasser kann ich die Befehlsnamen in der Liste der Befehle, die das können, nicht finden. Ich habe ReSharper_MoveUp/MoveDown ausprobiert und das verschiebt keine Zeilen nach oben/unten:

Move_Up command did not do the trick

Dadurch werden Textblöcke nach oben und unten verschoben. Ich möchte nur Zeile für Zeile nach oben oder unten, da ist keine ausgefallene Logik. Vor

What I have

Nach dem ALT+Up (wenn sich der Cursor in der WriteLine-Zeile befindet) Ich möchte Folgendes sehen:

Line moved one up, inside the bracket, indented

Ich habe diese Threads gesehen: Was ist das Äquivalent für Eclipse ALT + UP/DOWN (Zeile verschieben) in Visual Studio? , Visual Studio: Tastenkombinationen zum Verschieben der Zeile nach oben/unten und zum Durchblättern der letzten Änderungen , aber keine der vorgeschlagenen Lösungen funktioniert in VS2012.

Irgendwelche anderen Ideen?

UPD 7. November 2012: . Erweiterungen holen mit Visual Studio 2012 auf. Jetzt kenne ich mindestens 3 Erweiterungen, die diese Funktionalität bieten:

UPD 15 Nov 2012: Bin gerade auf eine andere Erweiterung gestoßen, die behauptet, dass sie das tut, was hier erforderlich ist. Habe es aber nicht ausprobiert: LineMan Extension

UPD 10. Mai 2015 Gerade VS2015 RC installiert und dies ist bereits eingebaut: MoveLineUp/Down

72
trailmax

Update: huzzah, Productivity PowerTools VS2012 ist jetzt verfügbar und bietet diese Funktion (zusammen mit einem anderen persönlichen Favoriten, Tools.AddEndTokenAtTheEnd .)

MoveLine Extension (kompatibel mit VS 2012; ich musste mein VS manuell neu starten, um die Befehle im Tastaturbefehlstool von VS anzuzeigen.)

33
Carl G

Für diejenigen, die mit Visual Studio 2013 oder höher auf diese Frage gekommen sind, ist die Funktion direkt in das Programm integriert. Benutz einfach AltUp und AltDown um die Zeile mit dem Cursor oder den ausgewählten Zeilen nach oben und unten zu verschieben.

Wenn Sie es in Extras> Optionen> mgebung> Tastatur neu binden möchten, sind die Tasten Edit.MoveSelectedLinesUp und Edit.MoveSelectedLinesDown. Möglicherweise müssen Sie Ihre neue Kombination zuerst von anderen vorhandenen Schlüsseln entfernen.

54
Keavon

Installieren Sie ReSharper.

Öffnen Sie Extras -> Optionen -> Umgebung -> Tastatur (wie in einem Bild gezeigt).

  1. Suche "ReSharper.ReSharper_MoveUp"
  2. In "Neue Verknüpfung verwenden in:" wählen Sie: "Texteditor"
  3. Klicken Sie in "Tastenkombinationen drücken:" und drücken Sie die Tastenkombination (z. B. Alt + ArrowUp).
  4. Klicken Sie auf die Schaltfläche "Zuweisen" Gleiches wie bei "ReSharper.ReSharper_MoveDown".

P.S. Funktioniert gut für einzelne Zeilen und mehrere ausgewählte Zeilen, entfernt jedoch die Auswahl nach dem Verschieben einer Zeile. Ich hoffe, es gibt eine Möglichkeit, mehrere Zeilen in einer Auswahl mehrmals zu verschieben.

Wenn Sie Resharper haben, können Sie treffen Ctrl + Shift + Alt +  um die aktuelle Zeile nach oben zu verschieben. oder Ctrl + Shift + Alt +  um eine Zeile nach unten zu verschieben.

Dies funktioniert in VS 2012 Premium mit Visual Studio-Tastaturschema in Resharper 7 (7.0.97.60, um genau zu sein).

Bearbeiten: Dies ist den Befehlen 'ReSharper.ReSharper_MoveUp'/'MoveDown' zugeordnet.

7
YetAnotherUser

In Visual Studio 2017 (atleast) habe ich unten

 enter image description here

4
Vineel Kovvuri

Während viele Leute scheinen, verschiedene zu empfehlen. Visual Studio Extensions und Resharper, ich möchte darauf hinweisen, dass es einennativeHotkey gibt, der dieses Ziel erreicht. Ich kam zu dieser Frage und versuchte die Antwort zu finden, da mein Resharper meine Standard-Hotkeys durch ihre MoveUp- und MoveDown-Versionen ersetzt hat.

Und während die Hotkeys von Resharper die Dinge nach oben und unten verschieben, sind sie nicht das, was das ursprüngliche Poster sucht, und sie sind nicht das, was ich wollte. Diese Hotkeys verschieben Methoden und Codeblöcke, nicht einzelne Zeilen.

Visual Studio verfügt über zwei Hotkey-Befehle, um die ausgewählten Zeilen nach oben oder unten zu verschieben. Diese Hotkeys sind:

  • Edit.MoveSelectedLinesDown
  • Edit.MoveSelectedLinesUp

Ich verwende jedoch Visual Studio 2013, daher weiß ich nicht, ob diese in einer älteren Version vorhanden sind. Wenn 2012 diese Hotkeys nicht verfügbar sind, ist eine Erweiterung möglicherweise die einzige Lösung.

Ich hatte auf jeden Fall ein Problem mit der Suche nach dem genauen Hotkey in der Liste von Visual Studio und es dauerte eine Weile, bis ich diese gefunden habe. Ich hoffe, dass meine Lösung jemandem in einer ähnlichen Situation helfen kann wie meiner eigenen.

2
JesseNewman19

Sie können Move Line Command extension verwenden.

Folgen Sie einfach dem Kommentar von formula349:

Ich konnte das mit 2012 so, wie es ist, zum Laufen bringen.

Benennen Sie das Paket in .Zip um und entpacken Sie alle Dateien in einem Ordner. Bearbeiten Sie die Datei extension.vsixmanifest und suchen Sie nach dem XML-Knoten SupportedProducts. Ändern Sie die Version = "10.0" in Version = "11.0".

Den Ordnerinhalt erneut komprimieren und in .vsix umbenennen. Funktioniert super!

2
gius

Shift+Del und dann Ctrl+V

Shift+Del funktioniert das cut (dasselbe wie Ctrl+X) Operation auf der aktuellen Zeile, auf der sich der Cursor befindet.

Dann können Sie verwenden Ctrl+V Sie können es an einer beliebigen Stelle einfügen.

Gut ist, dass Sie nicht die vollständige aktuelle Zeile auswählen müssen, sondern nur den Cursor auf der Zeile positionieren müssen.

Ein Nachteil bei der Verwendung dieser Verknüpfung ist, dass Sie nicht sehen können, wie sich die Linie vor Ihren Augen bewegt .

1
Saurav Sahu

Die Tastenkombinationen für das Hoch- und Runterbewegen von ReSharper sind klug. Statt nur die aktuelle Zeile zu verschieben (was leicht zu fehlerhaftem Code führen kann), wird die aktuelle Anweisung in der Liste der Anweisungen, aus denen der Methodenhauptteil besteht, nach oben und unten verschoben. Dies ist viel leistungsfähiger als nur eine einzelne Codezeile zu verschieben.

Dies hilft Ihnen jedoch nicht dabei, Ihre Anweisung innerhalb des Blocks if abzurufen. Hier müssen Sie eines von zwei Dingen tun.

Verschieben Sie zunächst die Anweisung über den Block if und verwenden Sie dann Ctrl+Shift+Alt+Right im Umfang nach unten drücken. Die Anweisung befindet sich jetzt im Block if, und Sie können sie mit den Tasten nach oben und unten verschieben. Sie können auch verwenden Ctrl+Shift+Alt+Left um es außerhalb des Blocks if in den Geltungsbereich zu verschieben.

Alternativ können Sie das Text-Caret außerhalb der schließenden Klammer des Blocks if einfügen und verwenden Ctrl+Shift+Alt+Down Um die Klammer nach unten zu verschieben, gehen Sie über die folgenden Anweisungen, einschließlich der Anweisungen im Block if.

Diese Tasten können viel mehr als nur eine einzelne Anweisung verschieben. Wenn Sie das Text-Caret auf eine Methoden- oder Klassendeklaration setzen, Up und Down Verschiebt die gesamte Methode oder Klassendeklaration nach oben und unten. Wenn Sie das Text-Caret in die Parameterliste einer Methode einfügen, Left und Right ordnet einzelne Parameter neu (und dann Alt+Enter kann das Refactoring Signatur ändern aufrufen).

Weitere Details in der Hilfeseiten .

0
citizenmatt