Come duplicare una riga o una selezione all'interno del codice di Visual Studio?


734

Utilizzando il codice Visual Studio di Microsoft, come posso duplicare una riga di codice e spostarla su e giù? (Simile al comportamento + cmd+ di Sublime )shiftd

È una funzionalità che utilizzo costantemente e faccio fatica a utilizzare Visual Studio Code senza di essa.


Questo risponde alla tua domanda?
Riga

Risposte:


1328

I comandi che stai cercando sono editor.action.copyLinesDownActione editor.action.copyLinesUpAction.

Puoi visualizzare le combinazioni di tasti associate selezionando: File> Preferenze> Scorciatoie da tastiera

Finestre:

Shift+ Alt+ Downe Shift+ Alt+Up

Mac:

Shift+ Option+ Downe Shift+OptionUp

Linux:

Ctrl+ Shift+ Alt+ Downe Ctrl+ Shift+ Alt+Up

(Potrebbe essere necessario utilizzare il tastierino numerico Downe Upper Linux)

Inoltre, i comandi editor.action.moveLinesUpActione editor.action.moveLinesDownActionsono quelli per spostare le linee e sono associati a Alt+ Downe Alt+ Upsu Windows e Mac e Ctrl+ Downe Ctrl+ Upsu Linux.


59
E sembra Alt+Upo Alt+Downsposta una linea esistente su e giù. Bello
Chris,

2
Vale la pena notare che le azioni copyLines non esistono in Visual Studio completo, ma solo in Visual Studio Code.
user45623

4
Strumenti | Opzioni | Ambiente | Tastiera in VS2015
Mike Keskinov,

15
Sai come "duplicare la selezione"? Non sono riuscito a trovare il comando appropriato :(
nZeus

25
Su Linux ctrl+shift+alt+down/upfunziona solo con i tasti freccia del tastierino numerico.
Jack Steam,

174

Puoi trovare le scorciatoie da tastiera da

File> Preferenze> Tasti di scelta rapida

Le scorciatoie da tastiera predefinite sono,

Copia linee verso il basso Azione : shift+ alt+down

Copia allineamenti Azione : shift+ alt+up

Sposta allineamenti Azione : alt+up

Sposta le linee verso il basso Azione : alt+down

Oppure puoi sovrascrivere le scorciatoie da tastiera

File> Preferenze> Tasti di scelta rapida

E modificando il keybindings.json

Esempio:

[
    {
        "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"
    }
]

Inoltre, se devi spostare una linea lontano, ctrl + C e ctrl + X copieranno / taglieranno facilmente la linea corrente senza doverla selezionare. E ctrl + L(comando expandLineSelection ) selezionerà una riga. Ripetendo ctrl + L si selezionano le righe aggiuntive per facilitare la selezione di un blocco. Oppure puoi fare un blocco approssimativo selezionare con il mouse e quindi ctrl + L per includere le estremità.
aamarks,

sto usando Vscode 1.4 non funziona caro
Kamlesh

49

Manca una risposta a questa domanda, "Come duplicare la selezione di codice" Simile al comportamento di Sublime cmd/ ctrl+ shift+ do Jetbrains cmd/ ctrl+ d.

Installa plugin Duplica selezione o riga dal VS Code Marketplace

Selezione duplicata o plug-in VS Line line

Questa estensione fornisce collegamenti per ctrl+ d(Windows / Linux) e cmd+ d(MacOS). Per personalizzare le scorciatoie da tastiera Preferenze -> Scorciatoie da tastiera:

{
  "mac": "cmd+d",
  "key": "ctrl+d",
  "command": "geeebe.duplicateText",
  "when": "editorTextFocus"
}

Nota: il collegamento esegue anche la linea duplicata, quindi se lo installi, rimuovi il collegamento precedente ctrl+ (se l'hai già fatto prima), altrimenti la selezione duplicata può causare errori.dcopyLinesDownAction


Ero frustrato dalla scorciatoia "copia linee in basso" che non si comportava esattamente come la funzione Sublime Text / Intellij Ctrl + D (ha copiato le intere righe anziché solo la selezione). Grazie per aver segnalato questo plugin!
Timothé Malahieude,

Stavo per abbandonare vscode e installare atom, ma questa estensione mi ha impedito. la funzionalità duplicata predefinita di vscode non è all'altezza. atom è molto meglio in questo senso.
vikrant

31

In VScode, chiamano questo Copy Line UpeCopy Line Down

Dal menu, vai a:

File> Preferenze> Tasti di scelta rapida

Controlla la scorciatoia da tastiera già assegnata per questo o modifica la tua.

A volte il collegamento assegnato predefinito potrebbe non funzionare, principalmente a causa del sistema operativo.

Nel mio Ubuntu, ho regolato questo su: Ctrl+ Shift+D

inserisci qui la descrizione dell'immagine


24

In VSCode Ctrl + CCtrl+ Vduplica l'intera riga in basso.

Preferisco questo alla risposta accettata, perché richiede solo una mano per farlo e sembra molto più naturale.

La risposta accettata probabilmente lo farà per la maggior parte delle persone, tuttavia si Downtrova dall'altra parte della tastiera. Quindi hai due opzioni, usa entrambe le mani (Mano sinistra: L Shift+ L Alt+ Mano destra:) Up/Down, o con una sola mano usa la destra R Shift+ R Alt+ Up/Down. La seconda opzione sembra strana secondo me. Preferirei usare l'opzione in cui la mia mano si trova naturalmente sulla tastiera, e se è una mano, anche meglio.


7
Il problema principale è che perdi ciò che era negli appunti
Chris,


12

Si noti che per gli utenti Ubuntu (<= 17.4), Unity utilizza CTRL+ ALT+ SHIFT+ Arrow Keyper spostare i programmi in aree di lavoro virtuali, in conflitto con le scorciatoie del codice VS. Dovrai ricollegarti editor.action.copyLinesDownActioned editor.action.copyLinesUpActionevitare il conflitto (o modificare le combinazioni di tasti dell'area di lavoro).

Per Ubuntu 17.10+ che utilizza GNOME, sembra che GNOME non utilizzi questo keybinding allo stesso modo in base alla sua documentazione, anche se qualcuno che utilizza aree di lavoro vanilla su 17.10 può confermarlo, potrebbe essere utile per i futuri cercatori di risposte.


Sono su Ubuntu 19.10 e Ctrl + Alt + Giù si sposta ancora tra le aree di lavoro.
BeeOnRope

10
  • Per gli utenti IDE Jetbrains che hanno eseguito la migrazione a VSCode , nessun problema.

  • Installare:
    1) JetBrains IDE Keymap: Extension
    2) vscode-IntelliJ-idee-keybindings Extension (Preferred)

  • Usa questo Intellij Darcula Theme: Estensione

  • La mappa dei tasti ha coperto la maggior parte delle scorciatoie da tastiera di VS Code e rende VS Code più " simile IDE JetBrains ".

  • Le estensioni sopra importano le associazioni di tasti da JetBrains a VS Code. Dopo aver installato l'estensione e riavviato VS Code è possibile utilizzare VS Code proprio come IntelliJ IDEA, Webstorm, PyCharm , ecc.


7

Per Windows :

Per copiare - shift+ alt+up

Per copiare verso il basso - shift+ alt+down

Per mac :

Per copiare - shift+ option+up

Per copiare verso il basso - shift+ option+down

Per Linux :

Per copiare - ctrl+ shift+ alt+8

Per copiare verso il basso - ctrl+ shift+ alt+2

Nota : è possibile modificare le scorciatoie da tastiera per il codice di Visual Studio premendo ctrl+ shift+p , quindi digitare apri scorciatoia da tastiera nel pallet e quindi premere invio in modo da aprire un nuovo file (file di scorciatoie da tastiera) per vedere tutte le scorciatoie e puoi cambiare le combinazioni di tasti facendo doppio clic sul rispettivo tasto e quindi inserendo il tuo tasto, infine premi Invio.

Spero che questo possa aiutare qualcuno!


6

Se provieni da Sublime Text e non vuoi riapprendere un nuovo key binding, puoi usare questa estensione per Visual Code Studio.

Keymap di testo sublime per codice VS.

Questa estensione porta le scorciatoie da tastiera Sublime Text più popolari a Visual Studio Code. Dopo aver installato l'estensione e riavviato VS Code sono ora disponibili le scorciatoie da tastiera preferite da Sublime Text.

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



1

Per utenti Fedora 29 (Gnome 3.30.2) e Ubuntu.

Sblocca inutili combinazioni di tasti dell'area di lavoro sinistra / destra, elencale per terminale

$ gsettings list-recursively | grep -E "org.gnome.desktop.wm.keybindings move-to-workspace-|org.gnome.desktop.wm.keybindings switch-to-workspace-"

Slegali

$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "[]"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left "[]"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right "[]"

Ripristina scorciatoie duplicate

  • Super + Pgdown / PgUp, Ctrl + Alt + DownArrow / UpArrow
  • Super + Maiusc + PgDown / PgUp, Ctrl + Alt + Maiusc + Freccia giù / Freccia su

Possono essere facilmente ripristinati per funzionare con una sola scorciatoia in Impostazioni> Dispositivi> Tastiera
Digita di nuovo Super + PgUp per "Sposta nell'area di lavoro sopra" come esempio.

inserisci qui la descrizione dell'immagine

Ora con meno scorciatoie duplicate in fedora29 tutte le scorciatoie vscode per Linux devono funzionare bene


0

nella mia ultima versione Visual Studio Code 1.30.2 verrà automaticamente modificato in


ctrl + D


In vscode questo evidenzia la parola sotto il cursore. Forse Notepad ++ ha usato il collegamento ctrl + D. Sto solo andando dalla memoria.
Flat Cat

0

Per gli utenti Linux: ho notato che su Linux è necessario utilizzare spesso la winchiave. Per Windows combo è:
ctrl+ shift + alt+up

quindi per Linux è lo stesso basta aggiungere winchiave:
ctrl+ shift + win+ alt+up

L'ho notato in alcune combo ora. Dire ctrl+ alt + Lblocca Linux, ma ctrl+ win + alt+ Lper il codice dei formati Intellij. Sotto Windows è solo ctrl+ alt + Lper formattare il codice.


0

Basta andare al file -> preferenze -> scorciatoie da tastiera Lì puoi cambiare qualsiasi scorciatoia che ti piace. cerca un duplicato e modificalo in qualsiasi cosa usi sempre in altri editor. Sono passato a ctrl + D

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.