Configurações para copiar e colar com recuo correto no código do Visual Studio

94

Quando copio e colo um trecho de código usando o Visual Studio Code, depois de pressionar Enter para criar uma nova linha , acontece o seguinte:

insira a descrição da imagem aqui

Parece manter o recuo criado pela nova linha, adicionando as informações anteriores do trecho copiado em cima dela. Prefiro que o código seja embelezado automaticamente ao colar.

Esse comportamento pode ser alterado por meio das configurações?

EDIT: Não estou me referindo a copiar e colar de plataforma cruzada, estou me referindo a copiar e colar dentro do mesmo arquivo no Visual Studio Code.

Tiago
fonte
a) não copie os espaços da primeira linha de sua fonte ou b) ao colar certifique-se de que o cursor esteja no início da linha. Basicamente, o VSC apenas passa lá "como está".
newBee
Portanto, não há como alterar isso por meio das configurações?
Tiago
Destacar o texto e movê-lo ALT + Arrowkeypreservará o recuo. Para quem procura uma alternativa para alterar as configurações.
Daniel Thompson

Respostas:

98

Isso já está integrado no vscode com "editor.formatOnPaste": truepropriedade nas configurações.

Andy
fonte
12
Infelizmente, isso também formata qualquer código colado, o que nem sempre é o que você deseja.
philraj
2
Não, não é a mesma coisa. Há um problema antigo github.com/Microsoft/vscode/issues/6392 , que foi encerrado, mas não foi resolvido, consulte os comentários. Tudo o que queremos é apenas manter / combinar o nível de indentação da linha de destino / destino, não o nível inicial, de onde o texto foi copiado, enquanto "editor.formatOnPaste": truefazemos a formatação, por exemplo, PEP8 para python.
ololobus
Bem, funciona como eu quero. Quero que passe a seção que copiei para onde quer que o cursor esteja quando colei
Dave Pile
2
Cada editor de texto, exceto VSCode, permite que um usuário dê um clique triplo e destaque qualquer texto. CTRL C para copiar e depois CTRL V, CTRL V para duplicar o texto copiado. Exceto no código VS, um clique triplo CTRL C CTRL V ajusta o texto e o segundo CTRL V o torna ainda pior. CTRL C CTRL V é o atalho de teclado mais comum, até minha mãe conhece este.
NZ Dev
3
Isso não é opinativo, por mais que eu concorde com o resto de sua declaração. COPY e PASTE NÃO DEVEM TER opinião, é COPY e PASTE só devem funcionar de 1 via.
NZ Dev
41

Este plugin pode ajudá-lo a:

extensão colar e recuar

Você apenas tem que alterar o atalho e ele funciona. Lembre-se de que você provavelmente deseja usar em 'cmd'vez de 'ctrl'se estiver em um mac. Como isso:

{
    "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"
}
hallow_me
fonte
9
Use para recriar o comportamento do Sublime Text 3, ou seja. cmd + shift + v para colar-recuar: { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
phocks
Essa solução ainda funciona. Chega de aba extra desagradável vs código que gosta de colocar toda vez que copio / colo.
Luminous
6
Encontrado, vá em "Atalhos de teclado" e clique no ícone "Abrir atalhos de teclado JSON" no canto superior direito da tela, difícil de encontrar, eu acho!
Matt Fletcher de
Essa extensão tem uma grande desvantagem: ela formata todo o código do arquivo ao colar, não apenas a parte que está sendo colada! Eu tive que desinstalar.
sdlins
Para localizar keybindings.jsononde você precisa adicionar o snippet JSON: Pesquise "Preferences: Open Keyboard Shortcuts (JSON) in Command Palette
Cornelius Roemer
13

Ctrl+ Vseguido por Ctrl+ Zparece funcionar fora da caixa.

Philippe
fonte
2
Isso funciona surpreendentemente. É meio chato ter que fazer isso, mas é melhor do que nada
Nate Beers
Você tentou o Cmd + V e o Cmd + Z?
Philippe
deixá-lo para que um produto da Microsoft não consiga lidar com a capacidade de copiar e colar ... Meu Deus, tão feliz por usar um laptop Linux ... obrigado, esta solução alternativa funciona
Scott Stensland
-3

Uma solução simples é tentar Ctrl+ Shift+ Vdepois de copiar o código. Irá colar todos os códigos corretamente com indentações.

vikrant gupta
fonte
Isso não funciona exatamente da mesma forma. Você tenta isto: destaque o parágrafo - CTRL C, CTRL + SHFT + V, CTRL + SHFT + V. Fica feio !!!!
NZ Dev
"Tentar" parece estranho. O que exatamente isso faz? E se um usuário alterasse os atalhos?
Nico Haase