visual-studio - trucos - seleccionar varias lineas visual studio code
Visual Studio: atajo Clave: Duplicar línea (27)
En Visual Studio 2017
(editar) Esta función ahora está incorporada en VS2017: Ctrl + E , V duplica una línea si no se selecciona nada o duplica la selección. Puede asignarlo a una combinación de teclas diferente, o encontrarlo en el menú:
Vea esta referencia para más información.
Pre VS2017, método incorporado usando el portapapeles
Como @cand mencionó, puedes hacer Ctrl + C ; Ctrl + V.
Ctrl + C copiará la línea si no se selecciona nada.
Solución de macros (pre VS2017)
Si desea implementar una solución más completa, tal vez para crear un método abreviado de teclado más simple o no desea afectar el portapapeles, consulte esta guía:
Comando de línea duplicada para 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
Para crear la macro, solo vaya al explorador de macros ("Herramientas-> Macros-> Explorador de macros" o Alt + F8 ) y copie y pegue el código en un nuevo módulo. Ahora solo asignale un atajo de teclado:
- ir a Herramientas-> Opciones ...
- en Entorno, haga clic en Teclado
- en el cuadro de texto "Mostrar comandos que contienen", ingrese "duplicado" (esto de acuerdo con el nombre que le dio al módulo).
- Ahora debería ver la macro en la lista de abajo
- elija "Editor de texto" de la lista "Usar nuevo acceso directo en"
- coloque el foco en el cuadro de texto "Presione las teclas de método abreviado" y presione la combinación del teclado que desea usar para ello ( Ctrl + Shift + D en mi caso)
- pulsa el botón "Asignar"
- ahora debería ver el acceso directo en el cuadro de texto "Accesos directos para el comando seleccionado"
- presiona el botón OK
Y eso es. ¡Disfrutar!
¿Por qué tantos métodos tan largos para lograr algo tan simple? Se tarda menos de un minuto en descargar e instalar la extensión de Microsoft. La página dice que lo vinculará a ALT + D de forma predeterminada, pero para mí lo vinculó a CTRL + D automáticamente en Visual Studio Community 2015 sin ningún cambio.
Aquí hay una macro basada en la del enlace publicado por Wael, pero mejorada en las siguientes áreas:
- ligeramente más corto
- un poco mas rapido
- comentarios :)
- se comporta para las líneas que comienzan con "///"
- Se puede deshacer con un solo deshacer.
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
Aunque me doy cuenta de que esto no es un método abreviado de teclado, pensé que agregaría esto, ya que no requiere el uso del portapapeles y podría ayudar a algunas personas.
Resalte la fila que desea duplicar. Presione control, haga clic con el mouse en el texto resaltado y arrástrelo a donde desea ir. Se duplicará el texto resaltado.
Como no puedo usar macros en mi Visual Studio 2013, encontré un complemento de Visual Studio (lo uso en 2012 y 2013). visualstudiogallery.msdn.microsoft.com/… duplicada duplica las selecciones y las líneas completas, solo deben seleccionarse parcialmente. El atajo estándar es ALT + D.
El comando que desea es Edit.Duplicate . Se asigna a Ctrl E , Ctrl V. Esto no sobrescribirá tu portapapeles.
En código de estudio visual ( WebMatrix ):
Copiar líneas abajo: Shift + Alt + abajo
Copiar líneas arriba: Shift + Alt + arriba
Eliminar líneas: Ctrl + Shift + k
En Visual Studio 2008 puedes usar CTRL + C + V
En Visual Studio 2010 copia la línea completa en la que se encuentra el cursor con CTRL + INSERT, luego puede usar Ctrl + V o SHIFT + INSERT para pegarlo.
En Visual Studio 2013 puedes usar Ctrl + C + V
En Visual studio 2017 y tal vez en otra versión. No necesita Macro o Extensión ,
- Vaya a
Tools > Options > Environment > Keyboards
- En
Show commands containing:
escribaEdit.Duplicate
- Coloque el cursor para
Press shortcut keys:
y presione Ctrl + D y haga clic en el botónAssign
- Haga
OK
enOK
para guardar su nuevo método abreviado de teclado
Es simple Ctrl + C ; Ctrl + V , revisa este link . Mientras no selecciones ningún texto, esto duplicará la línea sobre la que se encuentra el cursor cuando presionas Ctrl + C.
Hay una extensión gratuita que puede descargar here que le permite duplicar líneas sin reemplazar el contenido del portapapeles.
Por defecto, está vinculado a Alt + D , pero puede cambiarlo a cualquier cosa que desee yendo a Herramientas-> Opciones-> Entorno-> Teclado. Escribe "Duplicar" en el cuadro de búsqueda y busca "Editar.Duplicar selección" y edita el acceso directo a lo que quieras. Prefiero que Ctrl + D sea coherente con otros editores.
He estado usando la macro que Wael publicó: comando de línea duplicada para Visual Studio , pero dejó de funcionar hace una semana, asumí debido a una actualización de Windows. Y tenía razón, a partir de febrero de 2014, las macros se han deshabilitado en VS2010 (y 2008 aparentemente).
Para solucionar este problema, tendrá que desinstalar las actualizaciones de seguridad o agregar una línea de código en los archivos de configuración como se muestra here .
En una máquina Windows de 64 bits, las rutas predeterminadas a estos archivos son:
-
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"/> ...
¡ DEBES ejecutar tu editor de texto con derechos de administrador o no funcionará! Esperemos que esto ayude a cualquier otra persona que de repente haya eliminado su funcionalidad macro desde debajo de ellos.
No es una respuesta, solo una adición útil: como regalo de promoción, acabo de inventar (bueno ... ehm ... ajusté el código publicado por Lolo) una macro RemoveLineOrBlock. ¡Disfrutar!
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
No sé si esto existe en Visual Studio 2008 pero en Visual Studio 2010+ puede hacerlo fácilmente de la siguiente manera:
No seleccione nada, luego presione Ctrl + C Y luego (sin hacer nada más) Ctrl + V
Para Visual Studio 2010, intente usar estos comandos para una rápida duplicación de líneas (usa el portapapeles):
Haga clic en la línea que desea copiar. Ctrl + C copiará esa línea.
Luego presione Ctrl + Shift + Enter para insertar un espacio en blanco debajo del punto de inserción
(También puede usar Ctrl + Intro para insertar una línea en blanco sobre el punto de inserción).
Luego simplemente usa Ctrl + V para pegar la línea.
Para aquellos que aún están viendo esta pregunta en Visual Studio post-2008, se ha agregado un Edit.Duplicate real:
- CTRL + E , V
- CTRL + D (VS 2017 15.6+)
Si le gusta la duplicación de línea (o bloque) de estilo de eclipse usando CTRL + ALT + ARRIBA o CTRL + ARRIBA + ABAJO , a continuación publico macros para este propósito:
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
Simplemente coloque el mouse en la línea para copiar y hacer CTRL + C , luego CTRL + V en la misma línea. Funciona como la magia :-)
Uso el enlace de la aplicación: AutoHotkey con el siguiente código guardado en el archivo CommentDuplikateSaveClipboard.ahk
. Puede editar / eliminar accesos directos es fácil.
Tengo un enlace a este archivo "Shortcut to CommentDuplikateSaveClipboard.ahk"
en Autostart
en Windows.
Este script protege tu portapapeles.
Si tiene más curiosidad, agregaría accesos directos a este script habilitado.
A veces utilizo una secuencia de comandos de Multi Clipboard
muy impresionante para manejar fácilmente con muchos clips
guardados en el disco y uso con CTRL + C , X , V para copiar, pegar, cortar, siguiente, anterior, eliminar esto, eliminar todo.
;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
VS 2017 es Ctrl
+ D
o Ctrl
+ C
; Ctrl
+ V
ambos trabajan para mí.
para Visual Studio 2012, 2013, 2015, 2017 siga el enlace y descargue la extensión
https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection
Ahora vaya a Herramientas> Opciones> Teclado y escriba "Duplicar" en el cuadro de búsqueda (la cadena de comando completa es "Editar.DuplicarSelección"). Aquí puede enlazarlo a cualquier acceso directo de la misma forma que lo haría con cualquier otro comando.
http://www.jetbrains.com/resharper/
Mi historia: comencé a trabajar en una nueva empresa, nunca antes usé Visual Studio. Una de las primeras cosas - cómo duplicar la línea. Después de configurar la macro, ReSharper me dijo: ¿te gustaría sustituir mi acceso directo que era: "texto duplicado" :)
Ctrl + C + V funciona para mí en VS2012 sin extensión.
Ctrl + D es un nuevo atajo introducido en VS 2017 v15.6 que parece hacer exactamente lo que Ctrl + E , V
Ctrl + D duplicará la línea en la que se encuentra el cursor y la insertará justo debajo de la línea que está enfocada. Si desea duplicar un conjunto específico de código, simplemente seleccione la parte del código que desea duplicar antes de invocar el comando de código duplicado.
No afectará a tu portapapeles.
Ctrl + D funciona para mí en VS2012 con Resharper. Es la tecla de acceso rápido de Resharper.