76 votes

Raccourci Déplacer la ligne vers le haut/bas dans Visual Studio 2012

Dans VS2010, j'avais mis en place un raccourci Alt + Up/Down pour déplacer les lignes de code vers le haut ou vers le bas, tout comme j'avais l'habitude de le faire dans Eclipse à l'époque de Java.

Maintenant que les Power Tools et les macros (c'est ainsi que j'ai configuré ce raccourci dans VS2010) ne sont pas disponibles dans VS2012, comment faire pour que cela fonctionne ?

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

Move_Up command did not do the trick

Cela déplace les blocs de texte vers le haut et vers le bas. Je veux juste monter ou descendre ligne par ligne, pas de logique sophistiquée. Avant

What I have

Après ALT + Up (lorsque le curseur est sur la ligne WriteLine) Je voudrais voir ceci :

Line moved one up, inside the bracket, indented

J'ai vu ces fils : Quel est l'équivalent de ALT+UP/DOWN (déplacer la ligne) d'Eclipse dans Visual Studio ? , Visual Studio : touches de raccourci pour déplacer la ligne vers le haut/bas et pour parcourir les modifications récentes mais aucune des solutions proposées ne fonctionne dans VS2012.

D'autres idées ?

UPD 7 Nov 2012 : . Les extensions rattrapent leur retard sur Visual Studio 2012. Je connais maintenant au moins 3 extensions qui fournissent cette fonctionnalité :

UPD 15 Nov 2012 : Je suis tombé sur une autre extension qui prétend faire ce qui est demandé ici. Je ne l'ai pas encore essayé : Extension LineMan

2 votes

FYI PowerTools 2012 est sorti et a ceci maintenant.

0 votes

Cela s'applique également à atmel Studio 7 pour le déplacement des lignes vers le haut et le bas.

58voto

Keavon Points 789

Pour ceux qui ont répondu à cette question en utilisant Visual Studio 2013 (ou une version supérieure, j'imagine), la fonctionnalité est intégrée au programme. Il suffit d'utiliser AltUp et AltDown pour déplacer la ligne avec votre curseur - ou les lignes sélectionnées - vers le haut et le bas.

0 votes

La question portait sur l'année 2012.

20 votes

@trailmax Je suis au courant, et cette question a déjà reçu des réponses, mais je poste ceci pour que les gens qui utilisent 2013 sachent que cela existe déjà et qu'ils n'aient pas à chercher plus loin comme j'ai dû le faire.

0 votes

@RayL Peut-être avez-vous rebondi ces clés sur quelque chose d'autre ?

35voto

Carl G Points 2025

Mise à jour : huzzah, Productivité PowerTools VS2012 est maintenant disponible et offre cette fonctionnalité (ainsi qu'un autre favori personnel, Tools.AddEndTokenAtTheEnd .)

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

3 votes

Lorsque vous configurez un raccourci clavier, faites une portée à "Text Editor".

0 votes

La clé du succès ici est que votre raccourci doit porter sur l'éditeur de texte ET que vous devez SUPPRIMER (REMOVE) les raccourcis clavier existants déjà attribués. Si vous avez resharper, vous devez supprimer 'Resharper.Resharper.GoToNextMethod' et '..GoToPrevMethod' (notez qu'il peut y avoir deux raccourcis (XAML et Text Editor) qui doivent être supprimés).

0 votes

@Carl G - Y a-t-il un moyen de déplacer horizontalement un mot par un raccourci ? comme Alt + Up ou Alt + Down ?

10voto

Drop Points 4965

Installez ReSharper.

Ouvrez Outils -> Options -> Environnement -> Clavier (comme indiqué sur l'image).

  1. Trouvez "ReSharper.ReSharper_MoveUp".
  2. Dans "Utiliser le nouveau raccourci dans :" choisissez : "Editeur de texte"
  3. Cliquez dans "Press shortcut keys :" et appuyez sur votre raccourci (par exemple Alt+ArrowUp)
  4. Appuyez sur le bouton "Assign". Même chose avec "ReSharper.ReSharper_MoveDown".

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

2 votes

Nah, resharper essaye d'être trop utile et va trop loin cette fois. Il déplace le bloc de code avec la ligne courante. Et tout ce que je veux, c'est simplement déplacer une ligne vers le haut ou vers le bas, pas un bloc lié.

0 votes

Pour moi, les commandes "ReSharper.ReSharper_MoveUp" et "ReSharper.ReSharper_MoveDown" ne déplacent qu'une seule ligne courante si aucune sélection n'est effectuée, même à l'intérieur d'un bloc. Je ne sais pas pourquoi vous le faites d'une autre manière. J'utilise ReSharper 7.0.97.60 et VS 2012 RTM de MSDN.

2 votes

Un exemple de cas où cela ne fonctionne pas est lorsqu'une using apparaît en haut d'un fichier, et l'utilisateur veut déplacer l'instruction vers le bas de plusieurs lignes de manière à ce qu'elle se trouve dans la zone de texte de l'instruction namespace définition. L'utilisation de la commande MoveDown de R# fonctionne correctement pendant quelques itérations, jusqu'à ce que la fonction using apparaît juste en dessous du namespace ligne. Maintenant, l'itération suivante tentera de déplacer l'espace de nom sous son bloc actuel.

7voto

YetAnotherUser Points 3823

Si vous avez Resharper, alors vous pouvez frapper Ctrl + Shift + Alt + pour déplacer la ligne actuelle vers le haut. ou Ctrl + Shift + Alt + pour descendre d'une ligne.

Cela fonctionne dans VS 2012 Premium avec le schéma de clavier de Visual Studio dans Resharper 7 (7.0.97.60 pour être précis). être précis).

Edit : Ceci est lié aux commandes 'ReSharper.ReSharper_MoveUp'/'MoveDown'.

1 votes

Cela ne fonctionne pas pour moi, pour une raison quelconque. J'ai exactement le même resharper et les mêmes commandes de cartographie. Et chaque fois que j'essaie de déplacer les lignes vers le haut/bas, elles sautent d'une manière folle : parfois vers le haut dans une autre méthode, parfois vers le bas sous le bloc suivant. Mais ce n'est pas ce que je veux -(

0 votes

Oui, j'ai vu ça, mais un peu trop tard. Avez-vous essayé de réinitialiser le mappage de votre clavier ? Il se peut que les raccourcis soient associés à une commande différente ? Votre capture d'écran indique qu'il est associé à XAML, pouvez-vous vérifier s'il est également associé à Text ?

0 votes

Oui, j'ai vérifié l'éditeur de texte. En fait, je viens de réinstaller VS2012 et Resharper et il a le mappage par défaut. Vos raccourcis fonctionnent, mais ils ne déplacent pas une ligne vers le haut ou le bas - ils déplacent un bloc vers le haut ou le bas -(

2voto

gius Points 4298

Vous pouvez utiliser Commande Déplacer la ligne extension.

Il suffit de suivre le commentaire de formula349 :

J'ai réussi à le faire fonctionner avec 2012 tel quel.

Renommez le paquet en .zip et décompressez tous les fichiers dans un dossier. Modifiez le fichier extension.vsixmanifest et recherchez le nœud XML SupportedProducts. Changez la Version="10.0" en Version="11.0".

Re-zippez le contenu du dossier et renommez-le en .vsix. Cela fonctionne très bien !

0 votes

0 votes

Désolé, Gius. J'ai manqué votre réponse - j'étais en vacances et je n'ai pas reçu de notification pour une raison quelconque.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X