Visual Studio: touche de raccourci: ligne dupliquée
Est-il un raccourci pour Ligne en Double commande Visual Studio 2008?
Quelques exemples similaires:
- dans le bloc-notes++, je peux dupliquer la ligne en cours avec: Ctrl+D
- dans EditPlus: Ctrl+J
- dans NetBeans: Ctrl+Maj+↓/↑
- dans Eclipse, Ctrl+Alt+↓/↑
- dans Vi/Vim, aap
- etc.
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:
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:
- allez dans Outils- > Options...
- sous environnement, cliquez sur Clavier
- dans la zone de texte" Afficher les commandes contenant", entrez "dupliquer" (ceci en fonction du nom que vous avez donné au module.)
- , vous devriez maintenant voir la macro dans la liste ci-dessous
- choisissez "éditeur de texte "dans" Utiliser nouveau raccourci dans la liste
- 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)
- appuyez sur le bouton" assigner "
- vous devriez maintenant Voir le raccourci dans la zone de texte" raccourcis pour la commande sélectionnée "
- appuyez sur le bouton OK
Et c'est tout. Amusez-vous bien!
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.
Ctrl + D fonctionne pour moi en VS2012 avec Resharper. C'est la touche de raccourci de Resharper.
Dans Visual Studio 2013, vous pouvez utiliser Ctrl+C+V
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
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
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.
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.
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.
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
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
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"/> ...
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.
Dans visual studio 2008, vous pouvez utiliser CTRL + C + V
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 :-)
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":)
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.
VS 2017 son Ctrl
+ D
ou Ctrl
+ C
; Ctrl
+ V
ils travaillent tous les deux pour moi.
La commande que vous voulez est de Modifier.Dupliquer . Il est mappé à CtrlE, CtrlV. Ce ne sera pas écraser votre presse-papiers.
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+)
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
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
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.
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
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.