Edición multilínea en Visual Studio Code

581

¿Es posible habilitar la edición multilínea como en Sublime Text ?

Por ejemplo, presione Ctrlpara colocar más cursor y poder escribir / eliminar en varios lugares del documento a la vez.

AfBu
fuente
44
En muchas aplicaciones de Mac (p. Ej., TextEdit) también puedo arrastrar Opcionalmente el mouse para seleccionar un cuadro. ¿Está esto disponible en VS Code?
Simon Woodside
Publicación relacionada aquí .
RBT
2
Desde abril de 2018 (versión 1.23), podemos usar el botón central del mouse para seleccionar varias columnas. code.visualstudio.com/updates/…
blueray
55
Para cualquiera que busque el nombre de este comando en la sección de atajos de teclado, es:editor.action.insertCursorAtEndOfEachLineSelected
enzoborgfrantz
1
@enzoborgfrantz +1 ¡Exactamente lo que estaba buscando! La respuesta seleccionada debería haber mencionado primero los comandos relevantes del editor porque las combinaciones de teclas pueden variar.
pius el

Respuestas:

1064

En Windows, mantiene presionado Ctrl+ Altmientras presiona las teclas de flecha hacia arriba o hacia abajo para agregar cursores.

Mac: ⌥ Opt+ ⌘ Cmd+ /

Linux: Shift+ Alt+ /

Tenga en cuenta que el software de terceros puede interferir con estos accesos directos, evitando que funcionen según lo previsto (particularmente el software Intel Graphics HD en Windows; consulte los comentarios para obtener más detalles).

Si experimenta este problema, puede deshabilitar las teclas de acceso rápido de Intel / otro software o modificar los accesos directos del Código VS (descritos a continuación).

Presione Escpara restablecer a un solo cursor.

Cursores multilínea en Visual Studio Code

O, como señala Isidor Nikolic , puede mantener presionado Alty hacer clic izquierdo para colocar los cursores arbitrariamente.

Cursores multilínea colocados arbitrariamente en Visual Studio Code

Puede ver y editar atajos de teclado a través de:

Archivo → Preferencias → Atajos de teclado

Documentación:

https://code.visualstudio.com/docs/customization/keybindings

Hojas de trucos oficiales del atajo de teclado VS Code:

https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf
https://code.visualstudio.com/shortcuts/ atajos de teclado-linux.pdf

Nacimota
fuente
155
En Windows, la primera opción simplemente voltea mi pantalla. : - /
Kristoffer la Cour
26
Esto ya no es válido. Prueba CTRL + SHIFT + UP/DOWN/CLICKORALT + SHIFT + UP/DOWN/CLICK
Han
39
@Nacimota: en una máquina con Windows 10 (recién probada ahora) la combinación CTRL + ALT + FLECHA volteará la pantalla, CTRL + ALT + MAYÚS + FLECHA creará un nuevo cursor. La lista publicada de atajos de teclado PDF puede estar desactualizada.
Alex C
11
@AlexC los accesos directos no están desactualizados; descargue la última compilación y mire la configuración usted mismo. Si descubres que los accesos directos enumerados están volteando tu pantalla, apuesto a que es porque tienes una GPU Intel y estás ejecutando el software Intel que intercepta estos accesos directos de forma predeterminada. Abra el software HD Graphics y desactive o vuelva a vincular las teclas de acceso rápido si le molesta, pero no edite mi publicación para agregar información incorrecta . Los accesos directos enumerados son precisos, y no voy a enumerar cada pieza de software de terceros que puede interferir o no con ellos.
Nacimota
66
@Nacimota con el debido respeto, fue un error honesto que representa la realidad para una parte significativa de los usuarios. Hay suficientes máquinas de inteligencia por ahí donde esta podría ser una configuración predeterminada que la información adicional era valiosa. Ambos tenemos el objetivo de proporcionar la mejor respuesta más actualizada. Una oración adicional para enumerar esa diferencia sería útil.
Alex C
137

¡Resuelto usando solo dos pasos!

  1. Ctrl + F

  2. Alt + Enter

Es igual a Sublime Text's Alt+ F3.

Ingrese la descripción de la imagen aquí

Peter Mortensen
fuente
21
El mismo efecto te da
presionar
2
¿Podemos seleccionar todas las líneas a la vez que contengan esa palabra clave? El texto sublime lo tenía Ctrl + F> Alt + F3> Ctrl + L
Anirban
¿Qué es esto en términos de Mac? Ctrl y Alt reemplazados por ...?
OldPeculier
67

Puede simplemente Althacer clic para obtener cursores adicionales. Y como ya se mencionó, Ctrl+ Alt+ o .

Isidor Nikolic
fuente
99
Y puede usar Alt + Shift + clic para seleccionar dos líneas y cada línea intermedia.
Steven Liekens
66
La pregunta es cómo editar su enlace de teclas (¿cómo se Alt + Clickllama?)
David Refoua
Alt + clic define automáticamente la palabra o se mueve a la izquierda de la palabra y no funciona para mí.
jbodily
Encontré la respuesta a mi pregunta, puede ser Alt (que es la opción predeterminada o Ctrl / ⌘ . Esta opción se puede modificar con la "editor.multiCursorModifier": "ctrlCmd"tecla settings.json
introducida
62

Seleccionar caja

Windows: shift+alt +Mouse Left Button

macOS: shift+option +Click

Esto es contrario a lo que se menciona en una respuesta a ¿Visual Studio Code tiene cuadro de selección / edición de varias líneas? .

Peter Mortensen
fuente
No soy fanático de Shift + Alt + Click (aunque funciona). Entonces, para que funcione (en Windows) al igual que en VS, hice esto: vaya al menú Selección y seleccione Cambiar a Alt + Clic para Multi-Cursor. Ahora Alt + Click selecciona el cuadro.
Kon
27

Use Ctrl+ Dpara usar la edición de varias palabras de las mismas palabras en Windows y Linux.

Use CMD+ Dpara Mac.

Krishnaraj R
fuente
Como dijo @Krishnaraj, Ctrl + D funciona. En realidad, tanto VSCode como Sublime lo admiten. Asegúrese de aplicar Ctrl + D en todas las ocurrencias posteriores sin soltar ctrl. Sí, todavía necesita seleccionar manualmente, solo lo ayuda a liberar su mouse. MacOS Command + D
Oscar Zhang
22

Desde la versión 1.13 (mayo de 2017) , finalmente puede cambiar la clave modificadora predeterminada para crear múltiples cursores (agregar a la configuración):

"editor.multiCursorModifier": "ctrlCmd"

PD: El modificador "seguir enlace" desde este momento será Alt.

Alex
fuente
Muchas de estas otras respuestas no abordan la pregunta. Este es: cómo colocar más cuidados con clics del mouse.
Aleksander Niedziolko
17

En Mac es:

Option+ Commandmientras presiona las teclas de flecha hacia arriba o hacia abajo .

kiewic
fuente
16

Quería seleccionar varias líneas y presionar "algo" para tener un cursor para cada línea de selección (similar a Ctrl+ Shift+ Len Sublime Text). Esta acción en Visual Studio Code se llama "Agregar cursores a extremos de línea".

Esto se probó en Visual Studio Code 1.22 y funciona tanto en Windows como en Mac .

Aquí está el camino:

  1. Seleccione las líneas que desea que tengan múltiples cursores.
  2. Simplemente presione Alt+ Shift- I.

Ahora tiene un cursor por línea seleccionada.

Maxime
fuente
1
@Manza En VS Code, eres ALT-SHIFT-I(como ino L). La fuente no ayuda a ver correctamente. Uso este comando varias veces al día en Mac y Windows y acabo de probar una vez más con la última versión de VS Code: 1.24.1 y le aseguro que funciona. ¿Quizás tienes un plugin que causa conflicto?
Maxime
wow sí, ese es el truco, muchas gracias, todavía estaba cambiando entre lo sublime debido a esta característica, es tan práctica
Manza
para mí es CTRL-SHIFT-L (windows)
muestra el
14

Estoy usando la extensión vscodevim , por lo que no estoy seguro de si este es un problema común. Pero estaba teniendo el problema de que Ctrl+ Alt+ UpArrowvolteó mi pantalla al revés.

Mirando los conceptos básicos del código de Visual Studio (no sé si cambiaron esto en una actualización reciente), dice que use:

Ctrl+ Alt+ Shift+ ( Up/ down)

Andrés
fuente
1
Ctrl + Alt + [Tecla de flecha] es un método abreviado de teclado común para la rotación de la pantalla, ciertamente con controladores de gráficos Intel y / o software asociado. Me imagino que está siendo interceptado por esto antes de que VSCode lo vea. Recientemente (y molesto, ya que solía usarlo) la rotación parece haber sido descontinuada en una actualización del software Intel y ahora solo está disponible a través de menús largos. en Windows Por lo tanto, el método abreviado de teclado debería funcionar en VSCode con controladores más recientes.
Bob Sammers
9

Paso 1:

Seleccione la palabra a ser reemplazada


Paso 2:

Ctrl+ Festo seleccionará sus múltiples ocurrencias


Paso 3:

Alt + Enteresto establecerá el cursor en todas las ocurrencias encontradas


Paso 4:

simplemente comienza a escribir la nueva palabra


Viraj Singh
fuente
66
También cmd+shift+Len Mac. Hace lo mismo en un solo paso.
Andrés
2
@Andres Gracias! Esto resolvió mi problema en Windows, las otras soluciones voltean mi pantalla.
Tarik Hacialiogullari
8

En la última versión de Visual Studio Code, ahora puede arrastrar el cursor mientras mantiene presionado Option(Alt en Windows) para seleccionar la misma columna en varias filas.

Para habilitar esto, asegúrese de cambiar su editor.multiCursorModifieraspecto para que se vea así:

"editor.multiCursorModifier": "ctrlCmd"

De las notas de la versión de Visual Studio Code 1.32.0:

En el siguiente video, la selección comienza como una selección normal y luego se mantiene presionada la tecla Alt hasta que se suelta el botón del mouse:

Ejemplo de selección de columna mejorada:

Tyler Becks
fuente
6

En Windows, las siguientes combinaciones funcionan para mí:

  • Ctrl+ Shift+ Alt+down arrow
  • Ctrl+ Shift+ Alt+up arrow
Dnyneshwar
fuente
¡Esto parece ser idéntico a Visual Studio!
GaTechThomas
4

Creo que depende de su versión de Visual Studio Code.

La mía es la versión de Linux Visual Studio Code 1.7.2.

                                     "when": "editorTextFocus" },
{ "key": "shift+alt+up",          "command": "editor.action.insertCursorAbove",
                                     "when": "editorTextFocus" },
{ "key": "ctrl+shift+down",       "command": "editor.action.insertCursorBelow",
                                     "when": "editorTextFocus" },
{ "key": "shift+alt+down",        "command": "editor.action.insertCursorBelow",
                                     "when": "editorTextFocus" }```

The point is the shortcuts are not same in all machines, so you should check your configuration. Go to menu:

> Menu *File* → *Preferences* → *Keyboard Shortcuts*

Search for `editor.action.insertCursorAbove` and `editor.action.insertCursorBelow` and see your current configurations. You may change them if they conflict with operating system's shortcut keys.



Han
fuente
Agregar MAYÚS + ALT + ARRIBA / ABAJO a mi configuración de usuario funcionó en Windows 10
SteveC
4

En Visual Studio Code, simplemente presione Alty coloque el cursor en el lugar de edición (donde desea editar) y haga clic derecho para seleccionar.

Robin
fuente
2
Esta respuesta parece incompleta
Spangen
4

La solución de trabajo para mí fue primero seleccionar el texto requerido para editar y luego usar CTRL+ F2para seleccionar todos los datos coincidentes en la página. También puede usar CTRL+ Shift+ Lcomo lo sugiere @lesterCovax

Tenga en cuenta: La solución anterior utiliza la capacidad inherente del editor VSCode para seleccionar texto similar en toda la página y, por lo tanto, tenga cuidado.

Para mí, la solución anterior de Ctrl+ ALT+ Arrowkeysno funcionó ya que hizo que la pantalla cambiara su orientación de visualización en contra de seleccionar las líneas en VSCode.

ingrese la descripción de la imagen aquí

RICHARD ABRAHAM
fuente
3

Además de todas las respuestas, hay una forma más. Seleccione las líneas que desee y luego presione:

  • Windows: Shift+Alt +i
  • Mac: shift+ option+i

Esto coloca un cursor en cada fila de la selección.

Pulkit Agarwal
fuente
Esto funciona perfectamente! gracias
Miguel Stevens
2

Si está utilizando Linux, existe la posibilidad de un conflicto con Alt+ clic , que es el valor predeterminado para "mover una ventana".

Usted puede ir al menú Ajustescomportamiento de las ventanascomportamiento de las ventanasacciones pestaña

Simplemente elimine Alt+ left(mantener) y funcionará.

Esta es la mejor manera, porque no necesita mantener presionadas dos +teclas para realizar una tarea tan simple.

Marcelo Agimóvel
fuente
2

Estoy usando el texto sublime mapa de teclas de y la combinación de teclas proporcionada por la respuesta principal no pareció funcionar :( Podría haber algunos conflictos entre Visual Studio Code y sublime keymaps.

La combinación de teclas recomendada por @Han funciona para mí (¡muy apreciada!):

  • Ingrese al modo de cursor multilínea con Ctrl+ Shift+ Up/Down
  • Salir con Esc

(Nota al margen) A continuación se muestra un pequeño ejemplo del uso de Emmet junto con el cursor multilínea (habilitado y deshabilitado con estas combinaciones de teclas enumeradas anteriormente):

Ingrese la descripción de la imagen aquí

Shan Dou
fuente
2

versión 1.43 (febrero de 2020)

Ahora puede alternar el modo de selección de columna, que cambia los gestos del mouse y las teclas de flecha, a través de:

  • Barra de menú> Selección> Modo de selección de columna
  • Ctrl+ Shift+ P(Mostrar todos los comandos)> Cambiar modo de selección de columna
  • Ata tu llave para el comando "editor.action.toggleColumnSelection"

ingrese la descripción de la imagen aquí

Nota: Hay un panel de "Selección de columna" en la barra de estado después de la activación, que puede presionar para deshabilitarlo nuevamente.

ford04
fuente
1

Mi configuración: Windows 8.1 64 bits, Visual Studio Code versión 1.33.1.

Problema: conflicto con métodos abreviados de teclado de Intel HD Graphics 4000

Tuve un problema cuando estaba usando los accesos directos predeterminados del Código de Visual Studio ( Ctrl+ Alt+ UP, Ctrl+ Alt+ DOWN). En mi caso, estos comandos estaban girando mi pantalla en 0º y 180º respectivamente. Está sucediendo, porque hay instalada la aplicación Graphic Intel en mi computadora. Luego, simplemente deshabilito los accesos directos de esta aplicación.

Aquí hay un tutorial para ayudar a alguien.

Rui M.
fuente
1
En Windows 7, puede hacer clic con el botón derecho en el escritorio, seleccionar opciones de gráficos -> teclas de acceso rápido -> desactivar.
Moritz Roessler
0

Just Opt+ click me funciona en Mac

novato
fuente
0

La solución de @maxime de usar SHIFT + ALT + ifuncionó para mí, cuando necesitaba editar rápidamente ~ 20k líneas en un archivo. La mayoría de los otros atajos de teclado mencionados solo son útiles para un número limitado de líneas. SHIFTseleccionando el área que desea editar en columna, luego presionar SHIFT + ALT + ies la forma más eficiente de manejar esto.

Sin embargo, lo que descubrí accidentalmente (y aún no se ha mencionado aquí) es que hay un límite de 10k líneas en el "modo de edición del cursor" (hay una solicitud de función Github abierta para aumentarlo). Esto significa que para archivos extremadamente grandes, puede ser mejor escribir sus ediciones, en lugar de hacerlo manualmente.

Para aquellos como @specimen que tuvieron que usar accesos directos como CTRL + SHIFT + L(el enlace predeterminado es Select all occurrences of current selection) para lograr esto, debe verificar que no tenga instalada una extensión de mapa de teclas . Puede verificar buscando @recommended:keymapsen el panel de extensiones, yendo a File > Preferences > Keymaps( CTRL+K CTRL+M).

El mapa de teclas predeterminado [Windows] se puede encontrar en formato PDF AQUÍ , o puede ir File > Preferences > Keyboard Shortcutsa buscar / modificar los enlaces actuales. También hay una documentación más detallada de los enlaces de teclas AQUÍ .

LesterCovax
fuente
0

En Linux Fedora (probé con Fedora 31) con KDE, vaya a:

  1. Ajustes del sistema
  2. Gestión de ventanas
  3. Comportamiento de la ventana
  4. Acciones de ventana
  5. Ventana interna, barra de título y acciones de marco
  6. Haga clic en el cuadro de clic izquierdo
  7. Elija No hacer nada (reemplazando mover / arrastrar)

¡Ahora puede seleccionar varias líneas con Alt + clic izquierdo !

kintsukuroi
fuente