In VS2010 hatte ich eine Verknüpfung einrichten Alt+ Up/DownCodezeilen nach oben oder unten, so wie ich in meinem Java Tagen in Eclipse verwendet habe.
Nun, da Elektrowerkzeuge und Makros (wie ich diese Verknüpfung in VS2010 eingerichtet habe) in VS2012 nicht verfügbar sind, wie kann ich dies zum Laufen bringen?
Ich habe jemanden erwähnt, der 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:
Dadurch werden Textblöcke nach oben und unten verschoben. Ich möchte nur Zeile für Zeile nach oben oder unten, keine ausgefallene Logik. Vor
Nach ALT+ Up(wenn sich der Cursor auf der WriteLine-Zeile befindet) möchte ich Folgendes sehen:
Ich habe diese Threads gesehen: Was ist das Äquivalent für ALT + UP / DOWN (Zeile verschieben) von Eclipse in Visual Studio? , Visual Studio: Hotkeys zum Verschieben der Zeile nach oben / unten und zum Durchlaufen der letzten Änderungen , aber keine der vorgeschlagenen Lösungen funktioniert in VS2012.
Irgendwelche anderen Ideen?
UPD 7. November 2012 : . Erweiterungen holen Visual Studio 2012 ein. Jetzt kenne ich mindestens 3 Erweiterungen, die diese Funktionalität bieten:
- MoveLine-Erweiterung . Link bereitgestellt von Carl G.
- Verschieben Sie die Zeilenerweiterung mit Änderungen an der Version 2010. Von Gius
- Produktivität Elektrowerkzeuge 2012 . Habe das noch nicht ausprobiert, aber dieser Blog-Beitrag besagt, dass sich die Linie nach oben / unten bewegt
UPD 15. November 2012: Ich 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 installiert VS2015 RC und dies ist bereits eingebaut:
Antworten:
Update: huzzah, Productivity PowerTools VS2012 ist jetzt verfügbar und bietet diese Funktionalität (zusammen mit einem anderen persönlichen Favoriten ,
Tools.AddEndTokenAtTheEnd
.)MoveLine-Erweiterung (kompatibel mit VS 2012; ich musste meinen VS manuell neu starten, um die Befehle im Tastaturkürzel-Tool von VS anzuzeigen.)
quelle
Für diejenigen, die mit Visual Studio 2013 oder höher auf diese Frage gekommen sind, ist die Funktion direkt in das Programm integriert. Verwenden Sie einfach AltUpund AltDown, um die Linie mit dem Cursor - oder den ausgewählten Linien - nach oben und unten zu bewegen.
Wenn Sie möchten es in erneut zu binden Extras > Optionen > Umwelt > Tastatur sind die Tasten
Edit.MoveSelectedLinesUp
undEdit.MoveSelectedLinesDown
. Möglicherweise müssen Sie zuerst Ihre neue Kombination von anderen vorhandenen Schlüsseln entfernen.quelle
Edit.MoveSelectedLinesUp
undEdit.MoveSelectedLinesDown
. Bitte melden Sie sich zurück, wenn diese für Sie funktionieren.Installieren Sie ReSharper.
Öffnen Sie Extras -> Optionen -> Umgebung -> Tastatur (wie in einem Bild gezeigt).
PS Funktioniert gut für einzelne Zeilen und mehrere ausgewählte Zeilen, entfernt jedoch die Auswahl, nachdem 1 Zeile verschoben wurde. Ich hoffe, es gibt eine Möglichkeit, mehrere Zeilen in einer Auswahl mehrmals zu verschieben.
quelle
using
Anweisung oben in einer Datei angezeigt wird und der Benutzer die Anweisung mehrere Zeilen nach unten verschieben möchte, um innerhalb dernamespace
Definition zu liegen. Die Verwendung des MoveDown-Befehls von R # funktioniert für einige Iterationen ordnungsgemäß, bis dieusing
Anweisung direkt unter dernamespace
Zeile angezeigt wird. Jetzt wird bei der nächsten Iteration versucht, den Namespace unter seinen aktuellen Block zu verschieben.Wenn Sie Resharper haben, können Sie Ctrl+ Shift+ Alt+ drücken, ↑um die aktuelle Aufstellung 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.
quelle
In Visual Studio 2017 (mindestens) habe ich unten
quelle
Sie können die Erweiterung Move Line Command verwenden .
Folgen Sie einfach dem Kommentar von Formel 349:
quelle
Während viele Leute scheinen, verschiedene zu empfehlen. Visual Studio Extensions und Resharper möchte ich darauf hinweisen, dass es einen nativen Hotkey gibt, der dieses Ziel erreicht. Ich bin auf diese Frage gekommen, um die Antwort zu finden, da mein Resharper meine Standard-Hotkeys durch die Versionen MoveUp und MoveDown ersetzt hat.
Und während die Hotkeys von Resharper die Dinge auf und ab bewegen, sind sie nicht das, wonach das Originalplakat 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, mit denen Sie die ausgewählten Zeilen nach oben oder unten verschieben können. Diese Hotkeys sind:
Ich verwende jedoch Visual Studio 2013, sodass ich nicht weiß, ob diese in einer älteren Version vorhanden sind. Wenn 2012 diese Hotkeys nicht hat, ist möglicherweise eine Erweiterung die einzige Lösung.
In beiden Fällen hatte ich ein Problem mit der Suche nach dem genauen Hotkey in der Liste von Visual Studio, und es dauerte eine Weile, bis ich diese gefunden hatte. Ich hoffe, dass meine Lösung es schafft, jemand anderem in einer ähnlichen Situation wie meiner eigenen zu helfen.
quelle
Shift+ Delund dann Ctrl+V
Shift+ Delführt die Schnittoperation (wie Ctrl+ X) in der aktuellen Zeile aus, auf der sich der Cursor befindet.
Dann können Sie Ctrl+ verwenden, Vum es an einer beliebigen Stelle einzufügen.
Gut ist, dass Sie nicht die gesamte 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 lebhaft (nach oben oder unten) bewegt .
quelle
Die Verknüpfungen von ReSharper nach oben und unten sind intelligent. Statt nur die aktuelle Zeile zu verschieben (was leicht zu Codebruch führen kann), wird die aktuelle Anweisung in der Liste der Anweisungen, aus denen der Methodenkörper besteht, nach oben und unten verschoben. Dies ist viel leistungsfähiger als nur das Verschieben einer einzelnen Codezeile.
Dies hilft Ihnen jedoch nicht dabei, Ihre Aussage in den
if
Block zu bekommen. Hier müssen Sie eines von zwei Dingen tun.Bewegen Sie zuerst die Anweisung über den
if
Block und drücken Sie sie dann mit Ctrl+ Shift+ Alt+ Rightnach unten. Die Anweisung befindet sich jetzt imif
Block, und Sie können sie nach oben und unten verschieben. Sie können auch Ctrl+ Shift+ Alt+ verwenden Left, um es außerhalb desif
Blocks im Bereich aufzurufen.Alternativ können Sie das Text-Caret an der Außenseite der schließenden Klammer des
if
Blocks platzieren und mit Ctrl+ Shift+ Alt+ Downdie Klammer nach unten bewegen, indem Sie die folgenden Anweisungen, einschließlich der Anweisungen innerhalb desif
Blocks, überschreiten.Diese Schlüssel können viel mehr als nur eine einzelne Anweisung verschieben. Wenn Sie das Text-Caret auf eine Methoden- oder Klassendeklaration setzen Upund Downdie gesamte Methoden- oder Klassendeklaration nach oben und unten verschieben. Wenn Sie das Text-Caret in die Parameterliste einer Methode einfügen Leftund Righteinzelne Parameter neu anordnen (und dann Alt+ Enterdas Refactoring "Signatur ändern" aufrufen kann).
Weitere Details auf den Hilfeseiten .
quelle