155 votes

Paramètres pour copier-coller avec une indentation correcte dans Visual Studio Code

Lorsque je copie et colle un morceau de code en utilisant Visual Studio Code, après avoir appuyé sur entrée pour créer une nouvelle ligne il se passe ce qui suit :

enter image description here

Il semble conserver l'indentation créée par la nouvelle ligne, en ajoutant par-dessus les informations précédentes de l'extrait copié. Je préférerais que le code soit auto-beauté lors du collage.

Ce comportement peut-il être modifié par le biais des paramètres ?

EDIT : Je ne fais pas référence au copier-coller multiplateforme, mais au copier-coller au sein d'un même fichier dans Visual Studio Code.

1 votes

A) ne copiez pas les espaces de la première ligne de votre source ou b) lorsque vous la collez, assurez-vous que votre curseur est au début de la ligne. En fait, VSC ne fait que coller le texte "tel quel".

0 votes

Il n'y a donc aucun moyen de modifier cela dans les paramètres ?

2 votes

Mettre le texte en surbrillance et le déplacer avec ALT + Arrowkey préservera l'indentation. Pour ceux qui cherchent une alternative à la modification des paramètres.

143voto

andy Points 739

Ceci est déjà intégré dans le vscode avec "editor.formatOnPaste": true dans les paramètres.

28 votes

Malheureusement, cela formate également tout code collé, ce qui n'est pas toujours ce que vous souhaitez.

20 votes

Non, ce n'est pas la même chose. Il y a un problème de longue date github.com/Microsoft/vscode/issues/6392 qui est fermé, mais qui n'est pas encore résolu, voir les commentaires. Tout ce que nous voulons, c'est simplement garder/correspondre le niveau d'indentation de la ligne de destination/cible, et non le niveau initial, d'où le texte a été copié, alors que "editor.formatOnPaste": true fait le format, par exemple PEP8 fro python.

0 votes

Eh bien, ça fonctionne comme je le veux. Je veux qu'il passe la section que j'ai copiée à l'endroit où se trouve le curseur quand je colle.

60voto

hallow_me Points 468

Ce plugin peut vous aider :

extension du collage et de l'indentation

Il suffit de changer le raccourci et ça marche. N'oubliez pas que vous souhaitez probablement utiliser 'cmd' au lieu de 'ctrl' si vous êtes sur un Mac. Comme ça :

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

17 votes

Utilisez-le pour recréer le comportement de Sublime Text 3, par exemple cmd+shift+v pour coller l'indentation : { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }

0 votes

Cette solution fonctionne toujours. Il n'y a plus d'onglet supplémentaire que le code aime mettre à chaque fois que je copie/colle.

9 votes

Je l'ai trouvé, allez dans "Raccourcis clavier" et ensuite cliquez sur l'icône "Ouvrir les raccourcis clavier JSON" en haut à droite de l'écran, difficile à trouver je pense !

35voto

Philippe Points 4079

Ctrl + V suivi par Ctrl + Z semble fonctionner dès la sortie de la boîte.

6 votes

Cela fonctionne étonnamment bien. C'est un peu ennuyeux de devoir faire ça, mais c'est mieux que rien.

1 votes

Avez-vous essayé Cmd+V et Cmd+Z ?

1 votes

Je ne sais pas ce que je vais faire, mais je ne sais pas ce que je vais faire, mais je ne sais pas ce que je vais faire. OMG si heureux que j'utilise un ordinateur portable linux ... merci cette solution de contournement fonctionne

2voto

Les Grieve Points 1

Donnez mon coller-indent une extension à essayer. Le contenu est collé en fonction de l'indentation de la ligne actuelle et justifié à gauche par rapport à cette indentation.

0 votes

Merci - cela fonctionne d'emblée pour les YAML !

-6voto

vikrant gupta Points 9

Une solution simple consiste à essayer Ctrl + Shift + V après avoir copié le code. Il collera tous les codes correctement avec des indentations.

0 votes

Cela ne fonctionne pas, c'est exactement la même chose. Essayez ceci : mettez le paragraphe en surbrillance - CTRL C, CTRL+SHFT+V, CTRL+SHFT+V. Cela devient moche !!!!

0 votes

"Essayer" semble étrange. Qu'est-ce que cela fait exactement ? Et si un utilisateur modifiait les raccourcis ?

0 votes

Cela ne fonctionnera qu'avec sublime Text

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X