Impostazioni per copiare e incollare con il rientro corretto in Visual Studio Code


96

Quando copio e incollo una porzione di codice utilizzando Visual Studio Code, dopo aver premuto Invio per creare una nuova riga , accade quanto segue:

inserisci qui la descrizione dell'immagine

Sembra mantenere il rientro creato dalla nuova riga, aggiungendo le informazioni precedenti dallo snippet copiato sopra di esso. Preferirei che il codice venisse abbellito automaticamente in pasta.

Questo comportamento può essere modificato tramite le impostazioni?

EDIT: non mi riferisco al copia-incolla multipiattaforma, mi riferisco al copia e incolla all'interno dello stesso file in Visual Studio Code.


a) non copiare gli spazi della prima riga dalla fonte oppure b) quando lo incolli assicurati che il cursore si trovi all'inizio della riga. Fondamentalmente VSC lo incolla lì "così com'è".
newBee

Quindi non c'è modo di cambiarlo tramite le impostazioni?
Tiago

Evidenziando il testo e spostandolo con ALT + Arrowkeysi preserverà il rientro. Per chi cerca un'alternativa alla modifica delle impostazioni.
Daniel Thompson

Risposte:


103

Questo è già integrato in vscode con "editor.formatOnPaste": trueproprietà nelle impostazioni.


12
Questo sfortunatamente formatta anche qualsiasi codice incollato, che non è sempre quello che vuoi.
philraj

2
No, non è la stessa cosa. C'è un problema di lunga data github.com/Microsoft/vscode/issues/6392 , che è chiuso, ma in realtà non è stato risolto, vedere i commenti. Tutto ciò che vogliamo è solo mantenere / far corrispondere il livello di indentazione della destinazione / linea di destinazione, non il livello iniziale, da cui è stato copiato il testo, mentre "editor.formatOnPaste": truesta facendo il formato, ad esempio PEP8 per python.
ololobus

Bene, funziona come voglio. Voglio che incolli la sezione che ho copiato dove si trova il cursore quando incollo
Dave Pile

2
Ogni editor di testo eccetto VSCode consente a un utente di fare triplo clic ed evidenziare qualsiasi testo. CTRL C per copiare e poi CTRL V, CTRL V per duplicare il testo copiato. Tranne che in VS Code, un triplo clic CTRL C CTRL V regola il testo e quindi il 2 ° CTRL V lo rende ancora peggiore. CTRL C CTRL V è la scorciatoia da tastiera più comune, anche mia mamma la conosce.
NZ Dev

3
Non è supponente, per quanto concordo con il resto della tua dichiarazione. COPIA e INCOLLA NON DEVONO AVERE OPINIONE, è COPIA e INCOLLA dovrebbero funzionare solo in 1 modo.
NZ Dev

41

Questo plugin può aiutarti:

estensione incolla e rientra

Devi solo cambiare la scorciatoia e funziona. Ricorda che probabilmente vorrai usare al 'cmd'posto di 'ctrl'se sei su un Mac. Come questo:

{
    "key": "ctrl+v",
    "command": "pasteAndIndent.action",
    "when": "editorTextFocus && !editorReadonly"
},
{
    "key": "ctrl+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "!editorTextFocus"
},
{
    "key": "ctrl+shift+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "editorTextFocus && !editorReadonly"
}

9
Usalo per ricreare il comportamento di Sublime Text 3, ad es. cmd + { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
maiusc

Questa soluzione funziona ancora. Niente più tabulazioni extra contro il codice che mi piace inserire ogni volta che copio / incollo.
Luminoso

6
Trovato, vai in "Scorciatoie da tastiera" e quindi fai clic sull'icona "Apri scorciatoie da tastiera JSON" in alto a destra dello schermo, difficile da trovare credo!
Matt Fletcher

Questa estensione ha un grosso svantaggio: formatta l'intero codice del file quando si incolla, non solo il pezzo da incollare! Ho dovuto disinstallare.
sdlins

Per individuare il punto in keybindings.jsoncui è necessario aggiungere lo snippet JSON: Cerca "Preferenze: Apri scorciatoie da tastiera (JSON) nella tavolozza dei comandi
Cornelius Roemer

14

Ctrl+ Vseguito da Ctrl+ Zsembra funzionare fuori dagli schemi.


2
Questo sorprendentemente funziona. Un po 'fastidioso doverlo fare, ma è meglio di niente
Nate Beers il

Hai provato Cmd + V e Cmd + Z?
Philippe

lasciarlo così un prodotto Microsoft per non riuscire a gestire la capacità di copiare e incollare ... OMG così felice che uso un laptop Linux ... grazie a questa soluzione alternativa funziona
Scott Stensland

-3

Una semplice soluzione è provare Ctrl+ Shift+ Vdopo aver copiato il codice. Incollerà tutti i codici correttamente con le rientranze.


Questo non funziona, esattamente lo stesso. Prova questo: evidenzia il paragrafo - CTRL C, CTRL + MAIUSC + V, CTRL + MAIUSC + V. Diventa brutto !!!!
NZ Dev

"Provare" suona strano. Che cosa fa esattamente? Cosa succede se un utente ha modificato le scorciatoie?
Nico Haase
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.