Existe-t-il un raccourci pour la commande ligne en double dans Visual Studio 2008?
Quelques exemples similaires:
(modifier) Cette fonctionnalité est désormais intégrée à VS2017: Ctrl + E, V duplique une ligne si rien n'est sélectionné, ou duplique la sélection. Vous pouvez l'assigner à une autre combinaison de touches ou la trouver dans le menu:
Voir cette référence pour plus d'informations.
Comme @cand mentionné, vous pouvez simplement faire Ctrl + C ; Ctrl + V.
Ctrl + C va copier la ligne si rien n'est sélectionné.
Si vous souhaitez implémenter une solution plus complète, par exemple pour créer un raccourci clavier plus simple ou si vous ne souhaitez pas appliquer le Presse-papiers, consultez ce guide:
commande de ligne en double 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, allez simplement dans l’explorateur de macros ("Outils-> Macros-> Explorateur de macros" ou Alt+F8) et copiez-collez le code dans un nouveau module. Maintenant, assignez-lui un raccourci clavier:
- allez dans Outils-> Options ...
- sous Environnement, cliquez sur Clavier.
- dans la zone de texte "Afficher les commandes contenant", entrez "dupliquer" (selon le nom que vous avez donné au module.)
- vous devriez maintenant voir la macro dans la liste ci-dessous
- choisissez "Éditeur de texte" dans la liste "Utiliser un nouveau raccourci dans"
- mettez le focus dans la zone de texte "Appuyez sur les touches de raccourci" et appuyez sur la combinaison de touches que vous souhaitez utiliser (Ctrl+Shift+D dans mon cas)
- cliquez sur le bouton "Assign"
- vous devriez maintenant voir le raccourci dans la zone de texte "Raccourcis pour la commande sélectionnée"
- cliquez sur le bouton OK
Et c'est tout. Prendre plaisir!
Il existe une extension gratuite que vous pouvez télécharger ici 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 en tout ce que vous voulez en allant dans Outils-> Options-> Environnement-> Clavier. Tapez "Dupliquer" dans le champ de recherche et cherchez "Edit.DuplicateSelection" et éditez le raccourci vers celui que vous souhaitiez. je préfère Ctrl + D être cohérent avec les autres éditeurs.
C'est simple Ctrl + C ; Ctrl + V , vérifiez ceci 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.
Ctrl + C + V fonctionne pour moi sur VS2012 sans extension.
Ctrl + D travaille pour moi dans 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:
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 avec CTRL+ALT+UP ou CTRL+UP+DOWN, je publie ci-dessous 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 autant de méthodes de longue haleine pour accomplir quelque chose d'aussi simple? Il faut moins d’une minute pour télécharger et installer l’extension de Microsoft. La page dit qu'elle le liera à ALT+D par défaut, mais pour moi, il est lié à CTRL+D automatiquement dans Visual Studio Community 2015 sans aucune modification.
Voici le lien pour télécharger l'extension à partir de Microsoft.com.
En code Visual Studio (WebMatrix):
Copier les lignes vers le bas: Shift + Alt + down
Copier les lignes vers le haut: Shift + Alt + up
Supprimer des lignes: Ctrl + Shift + k
Bien que je réalise que ce n’est pas un raccourci clavier, j’ai pensé que j’ajouterais ceci, car cela n’exige pas l’utilisation du presse-papier et pourrait aider certaines personnes.
Mettez en surbrillance la ligne que vous souhaitez dupliquer . Appuyez sur Ctrl, cliquez avec la souris sur le texte en surbrillance et faites-la glisser à l'endroit où vous souhaitez aller. Cela va dupliquer le texte surligné.
Comme je ne peux pas utiliser de macros dans 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 doivent seulement être sélectionnées partiellement. Le raccourci standard est ALT + D.
Je ne sais pas si cela existe dans Visual Studio 2008, mais dans Visual Studio 2010+, vous pouvez facilement le faire en:
Ne sélectionnez rien, puis appuyez sur Ctrl + C Et ensuite (sans rien faire d'autre) Ctrl + V
J'utilise la macro que Wael a publiée: Commande de ligne en double pour Visual Studio , mais elle 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 résoudre ce problème, vous devrez soit désinstaller les mises à jour de sécurité, soit ajouter une ligne de code dans les fichiers de configuration, comme indiqué ici .
Sur une machine Windows 64 bits, les chemins d'accès par défaut à ces fichiers sont les suivants:
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 des droits d'administrateur ou il a gagné ça marche pas! J'espère que cela aidera toute autre personne dont la fonctionnalité macro aura été retirée soudainement.
Dans Visual Studio 2008, vous pouvez utiliser CTRL + C + V
Il suffit de placer votre souris sur la ligne pour copier et faire CTRL+C ,ensuite CTRL+V sur la même ligne. Fonctionne comme par magie :-)
Dans Visual studio 2017 et peut-être une autre version Aucune macro ou extension requise ,
Tools > Options > Environment > Keyboards
Show commands containing:
write Edit.Duplicate
Press shortcut keys:
et appuyez sur Ctrl + D et cliquez sur le bouton Assign
name__OK
pour enregistrer votre nouveau raccourci clavierPour ceux qui consultent toujours cette question sur Visual Studio après 2008, un véritable Edit.Duplicate a été ajouté:
La commande que vous voulez est Edit.Duplicate. Il est mappé sur CtrlE, CtrlV. Ceci ne le fera pas écrase votre presse-papiers.
Dans Visual Studio 2010, vous copiez toute la ligne sur laquelle se trouve le curseur. CTRL + INSERT alors vous pouvez utiliser Ctrl + V ou SHIFT + INSERT pour le coller.
http://www.jetbrains.com/resharper/
Mon histoire: a commencé à travailler dans une nouvelle société, n'avait jamais utilisé Visual Studio auparavant. Une des premières choses - comment dupliquer une ligne. Après avoir configuré la macro ReSharper m'a dit: voulez-vous remplacer mon raccourci qui était: "texte en double" :)
VS 2017 sa Ctrl
+ D
ou Ctrl
+ C
; Ctrl
+ V
ils travaillent tous les deux pour moi.
J'utilise le lien d'application: AutoHotkey avec le code ci-dessous enregistré dans le fichier CommentDuplikateSaveClipboard.ahk
. Vous pouvez modifier/supprimer des raccourcis, c'est facile.
J'ai un lien vers ce fichier "Shortcut to CommentDuplikateSaveClipboard.ahk"
in Autostart
in windows.
Ce script protège votre presse-papiers.
Si vous êtes plus curieux, vous ajouteriez des raccourcis au script thisable/enable.
J'utilise parfois un script très impressionnant Multi Clipboard
pour le manipuler facilement avec de nombreux clips
sauvegardés sur disque et utilisés avec CTRL+C,X,V copier, coller, couper, suivant, précédent, supprimer ceci, supprimer tout.
;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
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 le champ de recherche (la chaîne de commande complète est "Edit.DuplicateSelection"). Ici, vous pouvez le lier à n’importe quel raccourci de la même manière que pour toute autre commande.
Ctrl + D est un nouveau raccourci introduit dans VS 2017 v15.6 qui semble faire exactement ce que Ctrl + E, V
Ctrl + D va dupliquer la ligne dans laquelle se trouve le curseur et l'insérer juste en dessous de la ligne sélectionnée. Si vous souhaitez dupliquer un ensemble de code spécifique, sélectionnez simplement la partie de code que vous souhaitez dupliquer avant d'appeler la commande de code dupliqué.
Cela n'affectera pas votre presse-papier
dans VS2019 et aussi dans VS2017 vous pouvez sélectionner Outils-> Options-> Clavier et vous pouvez choisir dans la liste déroulante Resharper (Visual Studio) , et vous obtiendrez un mappage comme si vous utilisiez Resharper , dans ce cas Ctrl + D fera le tour pour dupliquer la ligne. Quoi qu'il en soit, sur la base de la documentation , cela devrait être hors de la porte dans Visual Studio 2017 version 15.8 ou plus
Pas une réponse, juste un ajout utile: En cadeau, je viens d’inventer (eh bien ... ehm ... ajusté le code posté par Lolo) une macro RemoveLineOrBlock. Prendre plaisir!
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