Modifica multilinea in Visual Studio Code


581

È possibile abilitare la modifica multilinea come in Sublime Text ?

Ad esempio, premere Ctrlper posizionare ulteriori cursore sul cursore e poter scrivere / eliminare in più punti del documento contemporaneamente.


4
In molte app per Mac (ad es. TextEdit) posso anche trascinare il mouse con il tasto Opzione per selezionare una casella. È disponibile in VS Code?
Simon Woodside,

Post correlato qui .
RBT

2
Da aprile 2018 (versione 1.23), possiamo usare il pulsante centrale del mouse per selezionare più colonne. code.visualstudio.com/updates/…
blueray

5
Per chiunque cerchi il nome di questo comando nella sezione delle scorciatoie da tastiera, è:editor.action.insertCursorAtEndOfEachLineSelected
enzoborgfrantz,

1
@enzoborgfrantz +1 Esattamente quello che stavo cercando! La risposta selezionata avrebbe dovuto prima menzionare i comandi dell'editor rilevanti poiché le combinazioni di tasti possono variare.
Pio

Risposte:


1064

Su Windows, tieni premuto Ctrl+ Altmentre premi i tasti freccia su o giù per aggiungere cursori.

Mac: ⌥ Opt+ ⌘ Cmd+ /

Linux: Shift+ Alt+ /

Si noti che software di terze parti possono interferire con queste scorciatoie, impedendo loro di funzionare come previsto (in particolare il software Intel HD Graphics su Windows; vedere i commenti per ulteriori dettagli).

Se si riscontra questo problema, è possibile disabilitare i tasti di scelta rapida Intel / altri software o modificare i collegamenti VS Code (descritti di seguito).

Premere Escper ripristinare un singolo cursore.

Cursori multilinea in Visual Studio Code

Oppure, come sottolinea Isidor Nikolic , puoi tenere premuto Alte fare clic con il pulsante sinistro del mouse per posizionare i cursori in modo arbitrario.

Cursori multilinea posizionati arbitrariamente nel codice di Visual Studio

Puoi visualizzare e modificare le scorciatoie da tastiera tramite:

File → Preferenze → Scorciatoie da tastiera

Documentazione:

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

Fogli di scorciatoie da tastiera ufficiali 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/ tasti scorciatoia-linux.pdf


155
Su Windows, la prima opzione lancia solo il mio schermo. : - /
Kristoffer la Cour,

26
Questo non è più valido. Prova CTRL + SHIFT + UP/DOWN/CLICKORALT + SHIFT + UP/DOWN/CLICK
Han

39
@Nacimota - su una macchina Windows 10 (appena testata ora) la combinazione CTRL + ALT + FRECCIA capovolge lo schermo, CTRL + ALT + MAIUSC + FRECCIA creerà un nuovo cursore. L'elenco pubblicato delle scorciatoie da tastiera PDF potrebbe non essere aggiornato.
Alex C

11
@AlexC le scorciatoie non sono obsolete ; scarica l'ultima build e guarda tu stesso la configurazione. Se stai scoprendo che le scorciatoie elencate stanno capovolgendo lo schermo, scommetto che è perché hai una GPU Intel e stai eseguendo il software Intel per essa che intercetta queste scorciatoie per impostazione predefinita. Apri il software HD Graphics e disabilita o ricollega i tasti di scelta rapida se ti dà fastidio, ma non modificare il mio post per aggiungere informazioni errate . I collegamenti elencati sono accurati e non elencherò tutti i software di terze parti che potrebbero interferire o meno con essi.
Nacimota,

6
@Nacimota con tutto il rispetto, è stato un errore onesto che rappresenta la realtà per una parte significativa degli utenti. Ci sono abbastanza macchine Intel là fuori dove questa potrebbe essere una configurazione predefinita che le informazioni aggiuntive erano preziose. Entrambi abbiamo l'obiettivo di fornire la migliore risposta più aggiornata. Un'ulteriore frase per enumerare quella differenza sarebbe utile.
Alex C

137

Risolto usando solo due passaggi!

  1. Ctrl + F

  2. Alt + Enter

È uguale a Alt+ di Sublime Text F3.

Inserisci qui la descrizione dell'immagine


21
Lo stesso effetto ti dà la possibilità di
premere

2
Possiamo selezionare tutte le righe alla volta che contengono quella parola chiave? Testo sublime: Ctrl + F> Alt + F3> Ctrl + L
Anirban

Cos'è questo in termini Mac? Ctrl e Alt sostituiti da ...?
OldPeculier,

67

Puoi semplicemente Alt+ fare clic per ulteriori cursori. E come già accennato, Ctrl+ Alt+ o .


9
E puoi usare Alt + Maiusc + clic per selezionare due righe e ogni riga in mezzo.
Steven Liekens,

6
La domanda è: come modificare il suo Key Binding (come si Alt + Clickchiama?)
David Refoua,

Alt + clic definisce automaticamente la parola o si sposta a sinistra della parola e non funziona per me.
jbodily,

Ho trovato la risposta alla mia domanda, può essere Alt ( impostazione predefinita o Ctrl / ⌘ . Questa opzione può essere modificata con la "editor.multiCursorModifier": "ctrlCmd"digitazione settings.json.
David Refoua


27

Usa Ctrl+ Dper usare la modifica multipla delle stesse parole in Windows e Linux.

Usa CMD+ Dper Mac.


Come ha detto @Krishnaraj, Ctrl + D funziona. In realtà sia VSCode che Sublime supportano questo. Assicurati di applicare Ctrl + D su tutte le occorrenze successive senza rilasciare Ctrl. Sì, devi ancora selezionare manualmente, ti aiuta solo a liberare il mouse. Comando MacOS + D
Oscar Zhang

22

Dalla versione 1.13 (maggio 2017) puoi finalmente cambiare il tasto modificatore predefinito per la creazione di più cursori (aggiungi alle impostazioni):

"editor.multiCursorModifier": "ctrlCmd"

PS: il modificatore "segui link" da questo momento sarà Alt.


Molte di queste altre risposte non rispondono alla domanda. Questo è - come posizionare i cursore extra con i clic del mouse.
Aleksander Niedziolko,

17

Su Mac è:

Option+ Commandmentre si premono i tasti freccia su o giù .


16

Volevo selezionare più righe e premere "qualcosa" per avere un cursore per ogni riga selezionata (simile a Ctrl+ Shift+ Lin Sublime Text). Questa azione nel codice di Visual Studio si chiama "Aggiungi cursori alle estremità di linea".

Questo è stato testato nel codice 1.22 di Visual Studio e funziona sia su Windows che su Mac .

Ecco il modo:

  1. Seleziona le linee che vuoi avere più cursori.
  2. Premi semplicemente Alt+ Shift- I.

Ora hai un cursore per riga selezionata.


1
@Manza In VS Code, sei ALT-SHIFT-I(come ino L). Il carattere non aiuta a vedere correttamente. Uso questo comando più volte al giorno sia su Mac che su Windows e ho appena provato ancora una volta con l'ultima versione di VS Code: 1.24.1 e ti assicuro che funziona. Forse hai un plugin che causa conflitti?
Maxime,

wow sì, quello fa il trucco, grazie mille, stavo ancora girando tra il sublime perché questa funzione, è davvero utile
Manza

per me è CTRL-SHIFT-L (windows)
esemplare


14

Sto usando l' estensione vscodevim , quindi non sono sicuro che questo sia un problema comune. Ma stavo avendo il problema in cui Ctrl+ Alt+ ha UpArrowcapovolto il mio schermo.

Guardando le basi del codice di Visual Studio (non so se hanno cambiato questo in un recente aggiornamento), dice di usare:

Ctrl+ Alt+ Shift+ ( Up/ down)


1
Ctrl + Alt + [tasto freccia] è una scorciatoia da tastiera comune per la rotazione dello schermo, sicuramente con driver grafici Intel e / o software associato. Immagino che venga intercettato da questo prima che VSCode dia un'occhiata. Recentemente (e fastidiosamente, da quando lo usavo) la rotazione sembra essere stata interrotta in un aggiornamento del software Intel ed è ora disponibile solo attraverso menu lunghi in Windows. La scorciatoia da tastiera dovrebbe quindi funzionare in VSCode con driver più recenti.
Bob Sammers,

9

Passaggio 1:

selezionare la parola da sostituire


Passo 2:

Ctrl+ Fquesto selezionerà le sue ricorrenze multiple


Passaggio 3:

Alt + Enterquesto posizionerà il cursore su tutte le occorrenze trovate


Passaggio 4:

inizia a digitare la nuova parola



6
Anche cmd+shift+Lsu Mac. Fa la stessa cosa in un solo passaggio.
Andres,

2
@Andres Grazie! Questo ha risolto il mio problema con Windows, le altre soluzioni capovolgono il mio schermo.
Tarik Hacialiogullari,


8

Nell'ultima versione di Visual Studio Code, ora puoi trascinare il cursore tenendo premuto Option( Altsu Windows) per selezionare la stessa colonna su più righe.

Per abilitarlo, assicurati di cambiare il tuo editor.multiCursorModifieraspetto in questo modo:

"editor.multiCursorModifier": "ctrlCmd"

Dalle note sulla versione del codice di Visual Studio 1.32.0:

Nel seguente video, la selezione inizia come una selezione regolare e quindi si tiene premuto Alt fino a quando non si rilascia il pulsante del mouse:

Esempio di selezione della colonna migliorata:


6

In Windows, le seguenti combinazioni funzionano per me:

  • Ctrl+ Shift+ Alt+down arrow
  • Ctrl+ Shift+ Alt+up arrow

Questo sembra essere identico a Visual Studio!
GaTechThomas

4

Penso che dipenda dalla versione del codice di Visual Studio.

Il mio è la versione Linux di 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.




L'aggiunta di MAIUSC + ALT + SU / GIÙ alle mie impostazioni utente ha funzionato su Windows 10
SteveC

4

In Visual Studio Code basta premere Alte posizionare il cursore sul punto di modifica (dove si desidera modificare) e fare clic con il tasto destro per selezionare.


2
Questa risposta sembra incompleta
Spangen

4

La soluzione di lavoro per me era prima selezionare il testo richiesto da modificare e quindi usare CTRL+ F2per selezionare tutti i dati corrispondenti nella pagina. Puoi anche usare CTRL+ Shift+ Lcome suggerito da @lesterCovax

Nota: la soluzione di cui sopra utilizza la capacità intrinseca dell'editor VSCode di selezionare un testo simile nell'intera pagina e, quindi, fare attenzione.

Per me la soluzione sopra di Ctrl+ ALT+ Arrowkeysnon ha funzionato in quanto ha causato lo schermo per cambiare il suo orientamento del display rispetto alla selezione delle linee in VSCode.

inserisci qui la descrizione dell'immagine


3

Oltre a tutte le risposte, c'è un altro modo. Seleziona le linee che desideri e poi premi:

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

Ciò posiziona un cursore in ogni riga della selezione.


Funziona perfettamente! grazie
Miguel Stevens

2

Se stai usando Linux, c'è la possibilità di un conflitto con Alt+ clic , che è l'impostazione predefinita per "spostare una finestra".

Si può andare al menù ImpostazioniFinestra ComportamentoFinestra Comportamentoazioni scheda

Basta rimuovere Alt+ left(tieni premuto) e funzionerà.

Questo è il modo migliore, perché non è necessario tenere premuti due +tasti per svolgere un compito così semplice.


2

Sto usando il keymap Sublime Text e il keybinding fornito dalla risposta principale non sembra funzionare :( Potrebbero esserci dei conflitti tra il codice di Visual Studio e le keymap sublimi.

Il keybinding raccomandato da @Han funziona per me (molto apprezzato!):

  • Entra nella modalità cursore multilinea con Ctrl+ Shift+ Up/Down
  • Esci con Esc

(Sidenote) Di seguito è riportato un piccolo esempio di utilizzo di Emmet insieme al cursore multilinea (abilitato e disabilitato con queste combinazioni di tasti sopra elencate):

Inserisci qui la descrizione dell'immagine


2

versione 1.43 (febbraio 2020)

Ora puoi attivare / disattivare la modalità di selezione delle colonne, che modifica i gesti del mouse e i tasti freccia, tramite:

  • Barra dei menu> Selezione> Modalità selezione colonne
  • Ctrl+ Shift+ P(Mostra tutti i comandi)> Attiva / disattiva la modalità di selezione delle colonne
  • Associare la chiave per il comando "editor.action.toggleColumnSelection"

inserisci qui la descrizione dell'immagine

Nota: dopo l'attivazione è presente un pannello "Selezione colonna" nella barra di stato, che è possibile premere per disabilitarlo nuovamente.


1

Le mie impostazioni: Windows 8.1 64 bit, Visual Studio Code versione 1.33.1.

Problema: conflitto con le scorciatoie da tastiera di Intel HD Graphics 4000

Ho avuto un problema quando stavo usando le scorciatoie predefinite del codice di Visual Studio ( Ctrl+ Alt+ UP, Ctrl+ Alt+ DOWN). Nel mio caso, questi comandi stavano trasformando il mio schermo rispettivamente in 0º e 180º. Sta succedendo, perché sul mio computer è installata l'applicazione Graphic Intel. Quindi, disabilito solo le scorciatoie di questa applicazione.

Ecco un tutorial per aiutare qualcuno.


1
In Windows 7 è possibile fare clic con il tasto destro del mouse sul desktop, selezionare le opzioni grafiche -> tasti di scelta rapida -> disabilita.
Moritz Roessler,


0

La soluzione di @maxime dell'utilizzo ha SHIFT + ALT + ifunzionato per me, quando avevo bisogno di modificare rapidamente ~ 20k righe in un file. La maggior parte delle altre scorciatoie da tastiera menzionate sono utili solo per un numero limitato di righe. SHIFTselezionando l'area che si desidera modificare in colonna, quindi premere SHIFT + ALT + iè il modo più efficiente per gestirlo.

Ciò che ho scoperto per caso, però (e non è ancora stato menzionato qui) è che esiste un limite di 10k righe in "modalità di modifica del cursore" (c'è una richiesta di funzionalità Github aperta per aumentarlo). Ciò significa che per file di dimensioni estremamente grandi, potrebbe essere meglio eseguire lo script delle modifiche anziché eseguirlo manualmente.

Per quelli come @specimen che hanno dovuto usare scorciatoie come CTRL + SHIFT + L(l'associazione predefinita è Select all occurrences of current selection) per ottenere questo risultato, dovresti controllare che non sia installata un'estensione keymap. Puoi controllare cercando @recommended:keymapsnel riquadro estensioni, andando a File > Preferences > Keymaps( CTRL+K CTRL+M).

La mappa dei tasti [Windows] predefinita è disponibile QUI in formato PDF oppure puoi andare File > Preferences > Keyboard Shortcutsa trovare / modificare i collegamenti correnti. C'è anche una documentazione più approfondita sui collegamenti dei tasti QUI .


0

Su Linux Fedora (ho provato con Fedora 31) con KDE, vai a:

  1. Impostazioni di sistema
  2. Gestione delle finestre
  3. Comportamento della finestra
  4. Azioni finestra
  5. Finestra interna, barra del titolo e azioni della cornice
  6. Fai clic sulla casella di selezione sinistra
  7. Seleziona Non fare nulla (sostituendo sposta / trascina)

Ora puoi selezionare più righe con Alt + clic sinistro !

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.