¿Cómo puedo duplicar una línea o selección dentro de Visual Studio Code?


Usando el código de Visual Studio de Microsoft, ¿cómo puedo duplicar una línea de código y luego moverla hacia arriba y hacia abajo? (Similar al cmd de Sublime + shift+d comportamiento)

Es una característica que uso constantemente, y estoy luchando con Visual Studio Code sin ella.

Author: Sahan Serasinghe, 2015-05-13

8 answers

Los comandos que busca son editor.action.copyLinesDownAction y editor.action.copyLinesUpAction.

Puede ver las combinaciones de teclas asociadas seleccionando: Archivo > Preferencias > Atajos de teclado

Windows:

Cambio+Alt+Abajo y Cambio+Alt+Hasta

Mac:

Cambio+Opción+Abajo y Cambio+OpciónHasta

Linux:

Ctrl+Cambio+Alt+Abajo y Ctrl+Cambio+Alt+Hasta

Además, los comandos editor.action.moveLinesUpAction y editor.action.moveLinesDownAction son los encargados de mover las líneas y que están vinculados a Alt+Abajo y Alt+Hasta en Windows y Mac y Ctrl+Abajo y Ctrl+Hasta en Linux.

 574
Author: Benjamin Pasero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-13 18:20:43

Puedes encontrar atajos de teclado desde

Archivo > Preferencias > Atajos de teclado

Los atajos de teclado predeterminados son,

Acción Copiar Líneas Abajo : shift+alt+down

Copiar Líneas de Acción : cambio+alt+hasta

Mover Líneas Acción : alt+subir

Acción Mover Líneas hacia Abajo : alt+down

O puede anular los atajos de teclado de

Archivo > Preferencias > Atajos de teclado

Y editando el keybindings.json

Ejemplo:

[
    {
        "key": "ctrl+d",
        "command": "editor.action.copyLinesDownAction",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+shift+up",
        "command": "editor.action.moveLinesUpAction",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+shift+down",
        "command": "editor.action.moveLinesDownAction",
        "when": "editorTextFocus"
    }
]
 108
Author: ddllr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-29 00:22:46

En VSCode, llaman a esto Copy Line Up y Copy Line Down

Desde el menú, vaya a:

Archivo > Preferencias > Atajos de teclado

Compruebe el atajo de teclado ya asignado para esto, o ajuste el suyo.

A veces el acceso directo asignado por defecto puede no funcionar, principalmente debido al sistema operativo.

En mi Ubuntu, yo ajustado a: Ctrl+Cambio+D

introduzca la descripción de la imagen aquí

 12
Author: Nahid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-05 00:23:32

Try ALT+CAMBIO+HASTA/ABAJO

¡Funcionó para mí!

 10
Author: erdemildiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-28 15:51:44

Tenga en cuenta que para los usuarios de Ubuntu (CTRL + ALT + SHIFT + Arrow Key para mover programas a través de espacios de trabajo virtuales, lo que entra en conflicto con los accesos directos de código VS. Tendrás que volver a enlazar editor.action.copyLinesDownAction y editor.action.copyLinesUpAction para evitar el conflicto (o cambiar las combinaciones de teclas de tu espacio de trabajo).

Para Ubuntu 17.10 + que usa GNOME, parece que GNOME no usa este enlace de teclas de la misma manera según su documentación, aunque si alguien que usa vanilla workspaces en 17.10 puede confirmar esto, podría ser útil para futuros buscadores de respuestas.

 5
Author: David Bodow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-11 19:14:37

Si viene de Sublime Text y no desea volver a aprender un nuevo enlace de claves, puede usar esta extensión para Visual Code Studio.

Mapa de teclado de Texto Sublime para Código VS

Esta extensión transporta los atajos de teclado más populares de Sublime Text a Visual Studio Code. Después de instalar la extensión y reiniciar VS Code, sus atajos de teclado favoritos de Sublime Text ahora son disponible.

Https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings

 4
Author: cyberfly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-26 01:45:13

La duplicación de línea directa (sin el paso del portapapeles) es propuesta por la extensión Contextual Duplicate.

Es asignada en ctrl+K D

 1
Author: CharlesB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-18 13:18:18

En su lugar utilizo ctrl+c ctrl+v, esto copiará y pegará la línea teniendo así el efecto similar. :)

 -5
Author: aks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-22 09:59:44