Edição de várias linhas no código do Visual Studio

581

É possível ativar a edição de múltiplas linhas, como no Sublime Text ?

Por exemplo, pressione Ctrlpara colocar pontos de cursor adicionais e poder escrever / excluir em vários locais do documento ao mesmo tempo.

AfBu
fonte
4
Em muitos aplicativos para Mac (por exemplo, TextEdit), também posso arrastar o mouse com a tecla Option pressionada para selecionar uma caixa. Isso está disponível no código VS?
Simon Woodside
Post relacionado aqui .
RBT
2
A partir de abril de 2018 (versão 1.23), podemos usar o botão do meio do mouse para selecionar várias colunas. code.visualstudio.com/updates/...
blueray
5
Para quem procura o nome desse comando na seção de atalhos de teclado, é:editor.action.insertCursorAtEndOfEachLineSelected
enzoborgfrantz
1
@enzoborgfrantz +1 Exatamente o que eu estava procurando! A resposta selecionada deve ter mencionado os comandos do editor relevantes, porque as combinações de teclas podem variar.
Pius

Respostas:

1063

No Windows, mantenha pressionado Ctrl+ Altenquanto pressiona as teclas de seta para cima ou para baixo para adicionar cursores.

Mac: ⌥ Opt+ ⌘ Cmd+ /

Linux: Shift+ Alt+ /

Observe que o software de terceiros pode interferir com esses atalhos, impedindo-os de funcionar como pretendido (principalmente o software HD Graphics da Intel no Windows; consulte os comentários para obter mais detalhes).

Se você enfrentar esse problema, poderá desativar as teclas de atalho da Intel / outros softwares ou modificar os atalhos do código VS (descritos abaixo).

Pressione Escpara redefinir para um único cursor.

Cursores de várias linhas no código do Visual Studio

Ou, como Isidor Nikolic aponta , você pode segurar Alte clicar com o botão esquerdo para colocar os cursores arbitrariamente.

Cursores multilinha colocados arbitrariamente no Código do Visual Studio

Você pode visualizar e editar atalhos de teclado através de:

Arquivo → Preferências → Atalhos de teclado

Documentação:

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

Dicas de atalho para teclado de código oficial do VS:

https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf
https://code.visualstudio.com/shortcuts/ keyboard-shortcuts-linux.pdf

Nacimota
fonte
155
No Windows, a primeira opção apenas vira minha tela. : - /
Kristoffer la Cour
26
Isso não é mais válido. Tente CTRL + SHIFT + UP/DOWN/CLICKORALT + SHIFT + UP/DOWN/CLICK
Han
39
@Nacimota - em uma máquina com Windows 10 (testada agora) a combinação CTRL + ALT + SETA irá virar a tela, CTRL + ALT + SHIFT + SETA criará um novo cursor. A lista publicada de PDF de atalhos de teclado pode estar desatualizada.
Alex C
11
@AlexC, os atalhos não estão desatualizados; faça o download da versão mais recente e veja a configuração você mesmo. Se você está achando que os atalhos listados estão invertendo sua tela, aposto que é porque você tem uma GPU Intel e está executando o software Intel, que intercepta esses atalhos por padrão. Abra o software HD Graphics e desative ou religue as teclas de atalho, caso isso o incomode, mas não edite minha postagem para adicionar informações incorretas . Os atalhos listados são precisos e não vou listar todos os softwares de terceiros que podem ou não interferir neles.
Nacimota
6
@Nacimota com todo o respeito, foi um erro honesto que representa a realidade para uma parcela significativa dos usuários. Existem máquinas intel suficientes por aí, onde pode ser uma configuração padrão que as informações adicionais sejam valiosas. Nós dois temos o objetivo de fornecer a melhor resposta mais atualizada. Uma frase adicional para enumerar essa diferença seria útil.
Alex C
137

Resolvido usando apenas duas etapas!

  1. Ctrl + F

  2. Alt + Enter

É igual ao Alt+ do texto sublime F3.

Digite a descrição da imagem aqui

Peter Mortensen
fonte
21
O mesmo efeito dá-lhe bater ctrl + F2
ksopyla
2
Podemos selecionar todas as linhas de uma vez que contenham essa palavra-chave? Texto sublime tinha Ctrl + F> Alt + F3> Ctrl + L
Anirban
O que é isso em termos de Mac? Ctrl e Alt substituídos por ...?
OldPeculier 20/09/19
67

Você pode apenas Alt+ clicar para obter cursores adicionais. E como já mencionado, Ctrl+ Alt+ ou .

Isidor Nikolic
fonte
9
E você pode usar Alt + Shift + clique para selecionar duas linhas e cada linha intermediária.
Steven Liekens
6
A pergunta é, como editar a sua chave de ligação (Qual é Alt + Clicko nome?)
David Refoua
Alt + clique define automaticamente a palavra ou move-se para a esquerda da palavra e não funciona para mim.
Jbodily
Encontrei a resposta para minha pergunta, ela pode ser Alt (que é o padrão , ou Ctrl / ⌘ . Esta opção pode ser modificada com a "editor.multiCursorModifier": "ctrlCmd"tecla in settings.json.
David Refoua
62

Seleção de caixa

Windows: shift+ alt+Mouse Left Button

macOS: shift+ option+Click

Isso é contrário ao que é mencionado em uma resposta para O Visual Studio Code possui caixa de seleção / edição com várias linhas? .

Peter Mortensen
fonte
Não sou fã de Shift + Alt + Click (embora funcione). Então, para fazê-lo funcionar (no Windows), assim como no VS, eu fiz o seguinte: vá ao menu Seleção e selecione Alternar para Alt + Clique em Multi-Cursor. Agora, Alt + Click seleciona a caixa.
Kon
27

Use Ctrl+D para usar a edição com várias palavras das mesmas palavras no Windows e Linux.

Use CMD+ Dpara Mac.

Krishnaraj R
fonte
Como @Krishnaraj disse, Ctrl + D funciona. Na verdade, o VSCode e o Sublime suportam isso. Certifique-se de aplicar Ctrl + D em todas as ocorrências posteriores sem liberar ctrl. Sim, você ainda precisa selecionar manualmente, apenas ajuda a liberar o mouse. Comando MacOS + D
Oscar Zhang
22

A partir da versão 1.13 (maio de 2017), você pode finalmente alterar a chave modificadora padrão para criar vários cursores (adicionar às configurações):

"editor.multiCursorModifier": "ctrlCmd"

PS: O modificador "seguir link" a partir deste momento será Alt.

Alex
fonte
Muitas dessas outras respostas não estão abordando a questão. Este é - como colocar pontos extras com cliques do mouse.
Aleksander Niedziolko 7/11
17

No Mac, é:

Option+ Commandenquanto pressiona as teclas de seta para cima ou para baixo .

kiewic
fonte
16

Eu queria selecionar várias linhas e pressionar "alguma coisa" para ter um cursor para cada linha de seleção (semelhante a Ctrl+ Shift+L no texto sublime). Essa ação no Código do Visual Studio é chamada "Adicionar Cursores às Extremidades da Linha".

Isso foi testado no Visual Studio Code 1.22 e funciona no Windows e no Mac .

Aqui está o caminho:

  1. Selecione as linhas que você deseja ter vários cursores.
  2. Basta pressionar Alt+ Shift- I.

Agora você tem um cursor por linha selecionada.

Maxime
fonte
1
@ Manza No VS Code, você é ALT-SHIFT-I(como inão L). A fonte não ajuda a ver corretamente. Uso esse comando várias vezes por dia no Mac e no Windows e apenas testei mais uma vez com a versão mais recente do VS Code: 1.24.1 e garanto que ele funciona. Talvez você tenha um plugin causando conflito?
Maxime
wow, sim, que fazer o truque, muito obrigado, eu ainda estava lançando entre sublime devido a esta característica, é o soooo útil
Manza
para mim é CTRL-SHIFT-L (windows)
espécime
14

Estou usando a extensão vscodevim , então não tenho certeza se este é um problema comum. Mas estava com o problema em que Ctrl+ Alt+ UpArrowvira minha tela de cabeça para baixo.

Observando os princípios básicos do código do Visual Studio (não sei se eles mudaram isso em uma atualização recente), ele diz para usar:

Ctrl+ Alt+ Shift+ ( Up/ down)

Andrew
fonte
1
Ctrl + Alt + [Arrow Key] é um atalho de teclado comum para rotação da tela, certamente com drivers de gráficos Intel e / ou software associado. Imagino que esteja sendo interceptado por isso antes que o VSCode dê uma olhada. Recentemente (e irritantemente, desde que eu costumava usá-lo) a rotação parece ter sido descontinuada em uma atualização para o software Intel e agora só está disponível através de menus longos no Windows. O atalho de teclado deve, portanto, funcionar no VSCode com drivers mais recentes.
Bob Sammers 22/09
9

Etapa 1:

selecione a palavra a ser substituída


Passo 2:

Ctrl+ Fisso selecionará suas múltiplas ocorrências


Etapa 3:

Alt + Enterisso definirá o cursor em todas as ocorrências encontradas


Etapa 4:

comece a digitar a nova palavra


Viraj Singh
fonte
6
Também cmd+shift+Lno Mac. Faz a mesma coisa em uma etapa.
Andres
2
@Andres Thanks! Isso resolveu meu problema no Windows, as outras soluções viram minha tela.
Tarik Hacialiogullari 30/11/2018
8

A partir de abril de 2018 (versão 1.23), agora você também pode usar o botão do meio do mouse para selecionar / selecionar caixas com várias linhas.

Jemmeh
fonte
Obrigado por isso, é uma economia de tempo. Existe uma opção para teclado? como destaque e, em seguida, ctrl + l em sublime?
Manza
Esse é um recurso um pouco diferente, mas você provavelmente está procurando por ctrl + i. code.visualstudio.com/docs/getstarted/keybindings
Jemmeh
8

Na versão mais recente do Visual Studio Code, agora você pode arrastar o cursor enquanto mantém pressionado Option(Alt no Windows) para selecionar a mesma coluna em várias linhas.

Para ativar isso, certifique-se de alterar sua editor.multiCursorModifieraparência para esta:

"editor.multiCursorModifier": "ctrlCmd"

Nas notas de versão do código do Visual Studio 1.32.0:

No vídeo a seguir, a seleção começa como uma seleção regular e Alt é pressionado e mantido pressionado até o botão do mouse ser liberado:

Exemplo de seleção de coluna aprimorada:

Tyler Becks
fonte
6

No Windows, as combinações abaixo funcionam para mim:

  • Ctrl+ Shift+ Alt+down arrow
  • Ctrl+ Shift+ Alt+up arrow
Dnyneshwar
fonte
Isso parece ser idêntico ao Visual Studio!
GaTechThomas 19/11/19
4

Eu acho que depende da sua versão do Visual Studio Code.

O meu é a versão Linux 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.



Han
fonte
Adicionar o SHIFT + ALT + UP / DOWN às minhas configurações de usuário funcionou no Windows 10
SteveC 04/04/19
4

No Código do Visual Studio, basta pressionar Alte colocar o cursor no local de edição (onde você deseja editar) e clicar com o botão direito do mouse para selecionar.

Robin
fonte
2
Esta resposta parece incompleta
Spangen
4

A solução de trabalho para mim foi primeiro selecionar o texto necessário para editar e depois usar CTRL+ F2para selecionar todos os dados correspondentes na página. Você também pode usar CTRL+ Shift+, Lconforme sugerido por @lesterCovax

Observação: a solução acima usa a capacidade inerente do editor VSCode para selecionar texto semelhante em toda a página e, portanto, tenha cuidado.

Para mim, a solução acima do Ctrl+ ALT+ Arrowkeysnão funcionou, pois fez com que a tela alterasse sua orientação de exibição contra a seleção das linhas no VSCode.

insira a descrição da imagem aqui

RICHARD ABRAHAM
fonte
3

Além de todas as respostas, há mais uma maneira. Selecione as linhas que você deseja e pressione:

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

Isso coloca um cursor em todas as linhas da seleção.

Pulkit Agarwal
fonte
Isso funciona perfeitamente! obrigado
Miguel Stevens
2

Se você estiver usando Linux, existe a possibilidade de um conflito com Alt+ clique , que é o padrão para "mover uma janela".

Você pode ir ao menu Configuraçõescomportamento da janelacomportamento da janelaAções guia

Basta remover Alt+left (manter pressionado) e ele funcionará.

Essa é a melhor maneira, porque você não precisa segurar duas +teclas para executar uma tarefa tão simples.

Marcelo Agimóvel
fonte
2

Estou usando o mapa de teclas Sublime Text e a ligação de teclas fornecida pela resposta superior parece não funcionar :( Pode haver alguns conflitos entre o Código do Visual Studio e os mapas de teclas sublimes.

A combinação de teclas recomendada por @Han funciona para mim (muito apreciada!):

  • Entre no modo de cursor multilinha com Ctrl+ Shift+ Up/Down
  • Sair com Esc

(Sidenote) Abaixo está um pequeno exemplo de como usar o Emmet junto com o cursor de múltiplas linhas (ativado e desativado com estas combinações de teclas listadas acima):

Digite a descrição da imagem aqui

Shan Dou
fonte
2

versão 1.43 (fevereiro de 2020)

Agora você pode alternar o modo de seleção de coluna, que altera os gestos do mouse e as teclas de seta, via:

  • Barra de menus> Seleção> Modo de seleção de coluna
  • Ctrl+ Shift+ P(Mostrar todos os comandos)> Alternar modo de seleção de coluna
  • Vincule sua chave ao comando "editor.action.toggleColumnSelection"

insira a descrição da imagem aqui

Nota: Há um painel "Seleção de coluna" na barra de status após a ativação, que você pode pressionar para desativá-lo novamente.

ford04
fonte
1

Minhas configurações: Windows 8.1 64 bits, Visual Studio Code versão 1.33.1.

Problema: Conflito com os atalhos de teclado do Intel HD Graphics 4000

Ocorreu um problema ao usar os atalhos padrão do código do Visual Studio ( Ctrl+ Alt+ UP, Ctrl+ Alt+DOWN ). No meu caso, esses comandos estavam virando minha tela em 0º e 180º, respectivamente. Está acontecendo, porque existe o aplicativo Intel gráfico instalado no meu computador. Depois, desabilito os atalhos deste aplicativo.

Aqui está um tutorial para ajudar alguém.

Rui M.
fonte
1
No Windows 7, você pode clicar com o botão direito na área de trabalho, selecionar opções gráficas -> teclas de atalho -> desativar.
Moritz Roessler
0

Basta Optclicar + funciona para mim no Mac

novato
fonte
0

A solução do @maxime de usar SHIFT + ALT + ifuncionou para mim, quando eu precisei editar rapidamente ~ 20k linhas em um arquivo. A maioria dos outros atalhos de teclado mencionados é útil apenas para um número limitado de linhas. SHIFTselecionando a área que você deseja editar em coluna e pressionar SHIFT + ALT + ié a maneira mais eficiente de lidar com isso.

O que eu descobri acidentalmente (e ainda não foi mencionado aqui) é que há um limite de 10 mil linhas no "modo de edição do cursor" (há uma solicitação de recurso aberta do Github para aumentá-lo). Isso significa que, para arquivos extremamente grandes, pode ser melhor programar suas edições, em vez de fazer manualmente.

Para aqueles como @specimen que tiveram que usar atalhos como CTRL + SHIFT + L(a ligação padrão é Select all occurrences of current selection) para fazer isso, verifique se não possui uma extensão de mapa de teclado instalada. Você pode verificar pesquisando @recommended:keymapsno painel de extensões, indo para File > Preferences > Keymaps( CTRL+K CTRL+M).

O mapa de teclas padrão do [Windows] pode ser encontrado no formato PDF AQUI , ou você pode File > Preferences > Keyboard Shortcutsencontrar / modificar as ligações atuais. Há também uma documentação mais detalhada sobre as associações de teclas AQUI .

LesterCovax
fonte
0

No Linux Fedora (tentei com o Fedora 31) com o KDE, acesse:

  1. Configurações do sistema
  2. Gerenciamento de Janelas
  3. Comportamento da janela
  4. Ações da janela
  5. Janela interna, barra de título e ações do quadro
  6. Clique na caixa de clique esquerdo
  7. Escolha Não fazer nada (substituindo mover / arrastar)

Agora você pode selecionar várias linhas com Alt + Clique Esquerdo !

kintsukuroi
fonte