Una necesidad común a la hora de editar código es la de modificar varias línea de manera idéntica. Esto tiene dos posibles vertientes:
- Copiar, cortar o eliminar código de varias líneas a la vez
- Escribir el mismo código en varias líneas al mismo tiempo
Selección de bloques de código
Por ejemplo, imagínate que tienes una clase con varias propiedades de longitud similar que debes reutilizar en otro lado para asignarle valores diferentes. Puedes copiar las líneas completas, pegarlas en otro lado y luego eliminar todo lo que te sobre, línea a línea. O puedes usar el truco que te voy a contar a continuación: la selección de una caja.
Normalmente cuando seleccionas con el cursor varias líneas, a medida que bajas se seleccionan las líneas completas, así:
En este caso empiezas a arrastrar hacia abajo el cursor con el ratón y, a medida que bajas, se seleccionan las líneas enteras, sin necesidad de llegar al final de éstas.
Sin embargo, si mientras bajas el cursor pulsas la tecla ALT
verás que ahora se selecciona solamente el área que abarca la posición inicial del curso y la actual, creando una selección rectangular:
Una vez seleccionado un rectángulo, normalmente con código idéntico o muy parecido, puedes modificarlo todo de golpe, por ejemplo borrándolo como en la animación anterior o bien copiándolo, cortándolo o arrastrándolo a otro lado con el cursor. Muy útil.
Edición multi-cursor
Nota: lo que pone a continuación es para Visual Studio 2013, 2015 y 2017. En Visual Studio 2019 viene de serie y no es necesario. En VS 2019 puedes usar CTRL+Pulsar con el ratón par elegir varias líneas a la vez, y CTRL+ALT+Pulsar para elegir puntos concretos en los que colocar múltiples cursores.
Pero al mismo tiempo que tenemos la necesidad de seleccionar código en un rectángulo también a veces tenemos la necesidad de escribir código en varias líneas a la vez.
Esto siempre ha sido problemático en Visual Studio, y la verdad es que, tal cual lo instalas, es complicado de conseguir. De hecho, sin ayuda externa lo único que puedes conseguir es editar varias líneas a la vez si los cursores están todos en la misma vertical. Para ello debes pulsar al mismo tiempo ALT+Mayúsculas
y mover el cursor hacia arriba o hacia abajo (o pulsar con el ratón), consiguiendo varios puntos de inserción simultáneos:
En este ejemplo hemos editado tres líneas a la vez, pero el cursor estaba en la misma vertical. Si intentamos ponerlo en otro sitio lo que haremos será seleccionar un bloque, como antes, ya que en el fondo esto es una variante de lo que acabamos de ver para seleccionar bloques.
Podemos solucionar el problema y conseguir una edición multi-línea de verdad utilizando la extensión llamada Multi Edit Mode de Mads Kristensen. Mads forma parte del equipo de Visual Studio desde hace muchos años y es autor de una cantidad enorme de extensiones indispensables como esta.
Para instalarla puedes hacerlo directamente desde Visual Studio como se ve en este vídeo corto:
Como se ve en el vídeo, tendrás que reiniciar Visual Studio y aceptar la "modificación del entorno" que es como lo pregunta ahora Visual Studio 2017, pero una vez reiniciado el entorno funcionará perfectamente cuando pulses la tecla ALT
:
Como vemos, el cursor ahora puede estar en varias verticales distintas además de en varias líneas, que es su verdadera utilidad. En la animación anterior no se aprecia bien debido a la auto-selección de cadenas iguales que hace Visual Studio, pero queda marcada la posición de cada cursor con una pequeña raya vertical.
La verdad es que es increíble que, tras tantos años, Visual Studio no incorpore esta funcionalidad "de serie", pero al menos podemos tenerla instalando esta extensión tan práctica.
¡Espero que te resulte útil!
Otros trucos de esta serie: