Visual Studio: touche de raccourci: ligne dupliquée

Est-il un raccourci pour Ligne en Double commande Visual Studio 2008?

Quelques exemples similaires:

334
demandé sur Guilherme Fidelis 2010-02-17 10:35:04

26 réponses

Dans Visual Studio 2017

(edit) Cette fonctionnalité est maintenant intégré dans VS2017: Ctrl + E, V doublons une ligne, si rien n'est sélectionné, ou des doublons de sélection. Vous pouvez l'affecter à une combinaison de touches différente, ou le trouver dans le menu:

Dupliquer la ligne dans VS2017

Voir cette référence pour plus d'informations.

Pré VS2017, méthode intégrée en utilisant le presse-papiers

Comme @cand mentionné, vous pouvez faire Ctrl + C ; Ctrl + V.

Ctrl + C copie la ligne si rien n'est sélectionné.

Solution Macro (pré VS2017)

Si vous souhaitez implémenter une solution plus complète, peut-être pour créer un raccourci clavier plus simple ou si vous ne voulez pas effectuer le presse-papiers, consultez ce guide:

Commande Dupliquer la ligne pour 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

Pour créer la macro, il suffit d'aller à la macro Explorer ("Outils->Macros->Macro Explorer" ou Alt+F8) et copier coller le code dans un nouveau module. Maintenant suffit d'attribuer un raccourci clavier:

  1. allez dans Outils- > Options...
  2. sous environnement, cliquez sur Clavier
  3. dans la zone de texte" Afficher les commandes contenant", entrez "dupliquer" (ceci en fonction du nom que vous avez donné au module.)
  4. , vous devriez maintenant voir la macro dans la liste ci-dessous
  5. choisissez "éditeur de texte "dans" Utiliser nouveau raccourci dans la liste
  6. définissez la mise au point dans la zone de texte" appuyez sur les touches de raccourci " et appuyez sur la combinaison du clavier que vous souhaitez utiliser ( Ctrl+décalage+D dans mon cas)
  7. appuyez sur le bouton" assigner "
  8. vous devriez maintenant Voir le raccourci dans la zone de texte" raccourcis pour la commande sélectionnée "
  9. appuyez sur le bouton OK

Et c'est tout. Amusez-vous bien!

289
répondu Wael Dalloul 2018-08-10 16:51:02

Il y a une extension gratuite que vous pouvez télécharger ici {[2] } qui vous permet de dupliquer des lignes sans remplacer le contenu du presse-papiers.

Par défaut, il est lié à Alt + D , mais vous pouvez le changer à tout ce que vous voulez en allant dans Outils->Options->Environnement->clavier. Tapez " Dupliquer "dans la zone de recherche et recherchez" modifier.DuplicateSelection " et modifiez le raccourci à ce que vous voulez. Je préfère Ctrl + D pour être compatible avec d'autres éditeurs.

117
répondu Ben 2013-03-15 18:10:59

C'est simple Ctrl + C ; Ctrl + V , cochez cette lien. Tant que vous ne sélectionnez Aucun texte, cela dupliquera la ligne sur laquelle se trouve le curseur lorsque vous appuyez sur Ctrl+C .

84
répondu cand 2013-01-25 21:14:45

Ctrl + C + V fonctionne pour moi sur VS2012 sans extension.

71
répondu nGoline 2014-05-15 13:54:48

Ctrl + D fonctionne pour moi en VS2012 avec Resharper. C'est la touche de raccourci de Resharper.

29
répondu sawe 2017-10-12 13:17:52

Dans Visual Studio 2013, vous pouvez utiliser Ctrl+C+V

25
répondu Vazgen Torosyan 2017-03-13 08:37:45

Voici une macro basée sur celle du lien posté par Wael, mais améliorée dans les domaines suivants:

  • légèrement plus court
  • légèrement plus rapide
  • commentaires :)
  • se comporte pour les lignes commençant par "///"
  • peut être annulé avec une seule annulation
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
20
répondu Mark Foreman 2011-03-25 03:01:07

Si vous aimez la duplication de ligne (ou de bloc) de style eclipse en utilisant CTRL+ALT+UP ou CTRL+debout+vers le bas , ci-dessous je poste des macros à cet effet:

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
10
répondu Krzysztof 2016-04-03 05:44:11

Pourquoi tant de méthodes longues pour accomplir quelque chose de si simple? Il faut moins d'une minute pour télécharger et installer L'extension de Microsoft. La page dit qu'il va le lier à ALT+D par défaut, mais pour moi, c'lié à CTRL+D automatiquement dans Visual Studio Community 2015 sans aucun changement.

Voici le lien pour télécharger l'extension de Microsoft.com.

9
répondu Daniel 2017-10-12 11:50:37

Bien que je réalise que ce n'est pas un raccourci clavier, j'ai pensé que j'ajouterais ceci, car il ne nécessite pas l'utilisation du presse-papiers et pourrait aider certaines personnes.

Mettez en surbrillance la ligne que vous souhaitez dupliquer. Appuyez sur Ctrl, cliquez sur le texte en surbrillance et faites glisser vers l'endroit où vous voulez aller. Il dupliquera le texte en surbrillance.

7
répondu Warty 2012-08-17 10:52:28

Comme je ne peux pas utiliser de Macros dans mon Visual Studio 2013, j'ai trouvé un Plugin Visual Studio (Je l'utilise en 2012 et 2013). Sélection en double duplique les sélections et les lignes entières - elles ne doivent être sélectionnées que partiellement. Le raccourci standard est ALT + D.

7
répondu Lebewesen 2017-10-12 13:54:17

Dans le code de visual studio (WebMatrix):

Copier des Lignes plus Bas: Maj + Alt + bas

Copier les Lignes Haut: Maj + Alt + jusqu'

Supprimer des Lignes: Ctrl + Maj + k

6
répondu mghhgm 2016-09-13 07:05:42

Je ne sais pas si cela existe dans Visual Studio 2008 mais dans Visual Studio 2010 + vous pouvez facilement le faire par:

Ne sélectionnez rien, puis appuyez sur Ctrl + C, puis (sans rien faire d'autre) Ctrl + V

5
répondu Alireza Noori 2012-08-21 10:34:08

J'ai utilisé la macro que Wael a posté: Commande Dupliquer la ligne pour Visual Studio, mais il a cessé de fonctionner il y a une semaine, j'ai supposé à cause d'une mise à jour de Windows. Et j'avais raison, à partir de février 2014, les Macros ont été désactivées dans VS2010 (et 2008 apparemment).

Pour y remédier, vous devrez désinstaller les mises à jour de sécurité, ou d'ajouter une ligne de code dans les fichiers de configuration comme indiqué ici.

Sur une machine Windows 64 bits chemins par défaut pour ces fichiers sont:

  • 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"/>
            ...
    

    l'éditeur de capture d'écran

Vous devez exécuter votre éditeur de texte avec droits d'administrateur ou cela ne fonctionnera pas! Espérons que cela aide quelqu'un d'autre qui a soudainement sa fonctionnalité macro retirée de dessous.

4
répondu MasterHD 2015-02-07 00:28:23

Dans visual studio 2008, vous pouvez utiliser CTRL + C + V

3
répondu user5460893 2017-10-12 15:08:42

Il suffit de mettre votre souris sur la ligne à copier et à ne CTRL+C ,par la suite CTRL+V sur la même ligne. Fonctionne comme par magie :-)

2
répondu David Constantine 2017-10-12 13:53:09

Http://www.jetbrains.com/resharper/

Mon histoire: commencé à travailler dans une nouvelle entreprise, jamais utilisé Visual Studio avant. Une des premières choses - comment dupliquer la ligne. Après avoir configuré macro ReSharper m'a dit: Voulez-vous remplacer mon raccourci qui était: "duplicate text":)

1
répondu Michal Stefanow 2012-03-27 13:54:27

Dans Visual Studio 2010, vous copiez l'intégralité de la ligne du curseur est sur avec CTRL + INSÉRER ensuite, vous pouvez utiliser Ctrl + V ou MAJ + INSÉRER coller.

1
répondu Crackerjack 2017-10-12 17:00:49

VS 2017 son Ctrl + D ou Ctrl + C ; Ctrl + V ils travaillent tous les deux pour moi.

1
répondu Danyal Ahmed Chaudhry 2018-03-06 16:22:48

La commande que vous voulez est de Modifier.Dupliquer . Il est mappé à CtrlE, CtrlV. Ce ne sera pas écraser votre presse-papiers.

1
répondu HaveSpacesuit 2018-03-09 03:00:37

Pour ceux qui regardent encore cette question sur Visual Studio post-2008, une vraie édition.Dupliquer a été ajouté:

  • CTRL+E, V
  • CTRL+D (VS 2017 15.6+)
1
répondu icanfathom 2018-05-02 14:47:23

J'utilise le lien d'application: AutoHotkey avec le code ci-dessous enregistré dans le fichier CommentDuplikateSaveClipboard.ahk. Vous pouvez modifier / supprimer des raccourcis, il est facile.
j'ai un lien vers ce fichier "Shortcut to CommentDuplikateSaveClipboard.ahk" dans Autostart dans windows.
ce script protège votre presse-papiers.
Si vous êtes plus curieux, vous ajouterez des raccourcis au script thisable/enable.
, j'utilise parfois très impressionnant Multi Clipboard script facile à manipuler avec beaucoup de clips enregistrées sur le disque et l'utilisation de CTRL+C,X,V pour copier,coller,couper,suivant,précédent,supprimer ce problème,supprimez tous.

;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
1
répondu MrHIDEn 2018-05-22 14:26:14

Pas une réponse, juste un ajout utile: Comme un billet de faveur, je viens d'inventer (bien... ehm... ajusté le code posté par Lolo) une macro RemoveLineOrBlock. Amusez-vous bien!

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
0
répondu Peter Perháč 2010-08-12 16:17:17

Pour Visual Studio 2012, 2013, 2015, 2017 suivez le lien et téléchargez l'extension

https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection

Maintenant, allez dans Outils > Options > clavier, et tapez " Dupliquer "dans la zone de recherche (la chaîne de commande complète est" Modifier.DuplicateSelection"). Ici, vous pouvez le lier à n'importe quel raccourci de la même manière que vous le feriez pour toute autre commande.

0
répondu Kalyan Halder Raaz 2018-06-25 12:04:02

Ctrl + D est un nouveau raccourci introduit dans VS 2017 v15.6 qui semble faire la chose exacte que Ctrl + E, V

Ctrl + D dupliquera la ligne dans laquelle se trouve le curseur et l'insérera juste en dessous de la ligne de mise au point. Si vous souhaitez dupliquer un ensemble spécifique de code, sélectionnez simplement la partie de code que vous souhaitez dupliquer avant d'appeler la commande dupliquer le code.

, Cela n'affectera pas votre presse-papiers

Source

0
répondu Kautsky Lozano 2018-09-13 11:06:29

Pour visual studio 2010, essayez d'utiliser ces commandes pour la duplication rapide des lignes (utilise le presse-papiers):

  • Cliquez sur la ligne que vous souhaitez copier. Ctrl + C copie cette ligne.

  • , Puis appuyez sur Ctrl + Maj + Saisissez pour insérer un espace vide en dessous du point d'insertion

    (utilisez également Ctrl + Entrez pour insérer une ligne vide au-dessus du point d'insertion.)

  • Ensuite, utilisez simplement Ctrl + V pour coller la ligne.

-2
répondu protoss1210 2011-09-13 09:36:00