Déplacer la Ligne Haut/Bas raccourci dans Visual Studio 2012

Dans VS2010, j'ai eu un ensemble de raccourcis Alt + Haut/Bas pour déplacer des lignes de code en haut ou en bas, tout comme j'ai l'habitude d'avoir dans Eclipse en Java my jours.

maintenant que les outils électriques et les macros (ce qui est la façon dont j'ai mis en place ce raccourci dans VS2010) ne sont pas disponibles dans VS2012, Comment puis-je faire pour que cela fonctionne?

j'ai vu quelqu'un mentionner que Resharper peut faire cela, mais pour l'amour du feu et de l'eau, Je ne peux pas trouver les noms de commandes dans la liste des commandes qui peuvent faire cela. J'ai essayé ReSharper_MoveUp / MoveDown et cela ne déplace pas les lignes de haut en bas:

Move_Up command did not do the trick

cela déplace des blocs de texte de haut en bas. Je veux juste une ligne par ligne en haut ou en bas, pas de logique fantaisiste là-bas. Avant

What I have

après ALT + Up (quand le curseur est sur WriteLine line) je voudrais voir ceci:

Line moved one up, inside the bracket, indented

j'ai vu ces threads: Quel est l'équivalent pour les ALT+UP/DOWN (move line) d'eclipse dans Visual Studio? , Visual Studio: hotkeys pour déplacer la Ligne Haut/Bas et passer à travers les changements récents , mais aucune des solutions proposées ne fonctionne dans VS2012.

d'autres idées?

UPD 7 Nov 2012: . Les Extensions rattrapent Visual Studio 2012. Maintenant je connais au moins 3 extensions qui fournissent cette fonctionnalité:

  • MoveLine Extension . Lien fourni par Carl G
  • Déplacer la Ligne "Extension de 1519320920" avec les modifications apportées à la version 2010. Par gius
  • La Productivité De La Puissance Des Outils 2012 . N'ont pas réellement essayé cela, mais ce billet de blog déclare qu'il fait la ligne monter/descendre

UPD 15 Novembre 2012: Juste tombé sur une autre extension qui prétend qu'il fait ce qui est nécessaire ici. N'ont pas essayé si: LineMan Extension

UPD 10 Mai 2015 Juste installé VS2015 RC et c'est intégré dans déjà: MoveLineUp/Down

69
demandé sur Community 2012-08-09 15:43:30

9 réponses

mise à jour: huzzah, PowerTools de productivité VS2012 est maintenant disponible et offre cette fonctionnalité (avec un autre favori personnel, Tools.AddEndTokenAtTheEnd .)

MoveLine Extension (compatible avec VS 2012; j'ai dû redémarrer manuellement mon VS pour voir les commandes dans L'outil de raccourci clavier de VS.)

33
répondu Carl G 2017-05-23 11:47:14

pour ceux qui sont arrivés sur cette question en utilisant Visual Studio 2013 (ou plus haut, j'imagine) la fonctionnalité est intégrée directement dans le programme. Il suffit d'utiliser Alt Up et Alt Down pour déplacer la ligne avec votre curseur-ou les lignes sélectionnées-de haut en bas.

Si vous souhaitez relier dans Outils > Options > Environnement > clavier , les touches sont Edit.MoveSelectedLinesUp et Edit.MoveSelectedLinesDown . Vous devrez peut-être d'abord supprimer votre nouvelle combinaison des autres clés existantes.

52
répondu Keavon 2015-07-09 13:46:52

Installer ReSharper.

Ouvrez Outils -> Options -> Environnement -> Clavier (comme le montre une photo)

  1. Trouver "ReSharper.ReSharper_MoveUp "
  2. Dans "Utiliser le raccourci:" choisissez: "Éditeur de Texte"
  3. cliquez sur "Appuyez sur les touches de raccourci:" et appuyez sur votre raccourci (par exemple Alt+ArrowUp)
  4. Appuyez sur le bouton "Affecter" Idem pour "ReSharper".ReSharper_MoveDown 151960920"

P.S. fonctionne bien pour les lignes simples et les lignes multiples sélectionnées, mais supprime la sélection après avoir déplacé une ligne. J'espère qu'il ya moyen de se déplacer de plusieurs lignes plusieurs fois dans une sélection.

10
répondu Ivan Aksamentov - Drop 2012-08-17 16:43:58

si vous avez Resharper, alors vous pouvez appuyer sur Ctrl + Shift + Alt + pour déplacer la ligne actuelle vers le haut. ou Ctrl + Shift + Alt + pour se déplacer d'une ligne vers le bas.

cela fonctionne dans VS Prime 2012 avec Visual Studio clavier scheme dans Resharper 7 (7.0.97.60 à être précis).

Edit: C'est lié à 'ReSharper.Les commandes ReSharper_MoveUp'/'MoveDown'.

7
répondu YetAnotherUser 2012-08-20 21:48:07

dans Visual Studio 2017(atleast) j'ai ci-dessous

enter image description here

3
répondu Vineel Kovvuri 2017-08-01 05:06:05

Vous pouvez utiliser Déplacer la Ligne de Commande extension.

il suffit de suivre le commentaire de formula349:

j'ai pu obtenir ce travail avec 2012 as-is.

renommer le paquet en .zip et décompressez tous les fichiers dans un dossier. Modifier l'extension.VSIXMANIFEST file et rechercher le noeud XML SupportedProducts. Changez la Version= "10.0" en Version= "11.0".

re-zip le contenu du dossier et renommer à nouveau.vsix. Fonctionne très bien!

2
répondu gius 2012-09-21 12:22:01

alors que beaucoup de gens semblent recommander divers. Extensions Visual Studio et Resharper, je tiens à souligner il y a un native raccourci qui accomplit cet objectif. Je suis venu à cette question en essayant de trouver la réponse, car mon Resharper a remplacé mes hotkeys par défaut avec leurs versions MoveUp et MoveDown.

et tandis que les hotkeys de Resharper font bouger les choses de haut en bas, ils sont pas ce que le poster original sont à la recherche, et ils ne sont pas ce que je voulais. Ces hotkeys déplacent des méthodes et des blocs de code, pas lignes individuelles.

Visual studio a deux commandes hotkey pour déplacer vos lignes sélectionnées vers le haut ou vers le bas. Ces ânes sont:

  • Edit.MoveSelectedLinesDown
  • Edit.MoveSelectedLinesUp

j'utilise Visual Studio 2013 cependant, je ne sais pas si elles existent dans une version plus ancienne. Si 2012 n'a pas ces hotkeys alors peut-être une extension est la seule solution.

D'une façon ou d'une autre, j'ai eu un problème à localiser l'exacte hotkey dans la liste de visual studio et il m'a fallu un bon moment pour trouver ces, donc j'espère que ma solution parvient à aider quelqu'un d'autre dans une situation similaire à la mienne.

2
répondu JesseNewman19 2014-12-11 20:55:49

Shift + Del puis Ctrl + V

Shift + Del le couper (de même que Ctrl + X ) de l'opération sur la ligne courante sur laquelle le curseur est positionné.

alors vous pouvez utiliser Ctrl + V pour coller à n'importe quel endroit que vous aimez.

la bonne chose est que vous n'avez pas besoin de sélectionner le ligne courante complète , juste le curseur doit être placé sur la ligne.

L'un des inconvénients de ce raccourci est que vous ne pourrez pas voir la ligne bouger ( haut ou bas) lively devant vos yeux.

1
répondu Saurav Sahu 2017-01-03 23:31:58

Remover's move up and move down les raccourcis sont intelligents - au lieu de simplement déplacer la ligne courante (ce qui peut facilement conduire à un code cassé), il déplacera la déclaration courante de haut en bas dans la liste des déclarations qui constituent le corps de la méthode. C'est beaucoup plus puissant que de simplement déplacer une seule ligne de code.

mais cela ne vous aide pas à obtenir votre déclaration à l'intérieur du bloc if . Ici, vous devez faire une de deux choses.

Tout d'abord, déplacer l'énoncé au-dessus de le bloc if , puis utiliser Ctrl + Shift + Alt + droit pour le pousser vers le bas dans la portée. La déclaration sera maintenant à l'intérieur du bloc if , et vous pouvez utiliser de haut en bas pour la déplacer là-dedans. Vous pouvez également utiliser Ctrl + Shift + Alt + Gauche pour le remonter dans la portée, à l'extérieur du bloc if .

alternativement, vous pouvez placer le texte caret à l'extérieur de la bretelle de fermeture du bloc if et utiliser Ctrl + Shift + Alt + Down pour déplacer la bretelle vers le bas, en enjambant les instructions suivantes, en les incluant à l'intérieur du bloc if .

ces clés peut faire beaucoup plus que déplacer une simple déclaration. Si vous mettez le texte caret sur une méthode ou une déclaration de classe, vers le haut et vers le bas déplacera la méthode entière ou la déclaration de classe de haut en bas. Si vous mettez le texte caret dans la liste des paramètres d'une méthode, gauche et droite va réorganiser les paramètres individuels (et puis Alt + Enter peut invoquer le Changement de Signature refactoring).

plus de détails dans les pages d'aide .

0
répondu citizenmatt 2017-01-12 09:19:15