Vários cursores no Visual Studio Code [fechado]

579

Como você pode criar vários cursores ao editar no VS Code? Estou interessado no macOS e no Windows.

Kiba
fonte
114
Basta pressionar o Altbotão e começar a clicar em lugares diferentes. É isso aí.
nome de usuário
40
CMD + Alt + Seta para baixo é o que você deseja. stackoverflow.com/questions/30037808/…
Valentine Bondar
4
Se você estiver usando um mac, SHIFT + CTRL + DOWN / UP é o que você realmente deseja a partir da versão 1.14.2.
Ben Creasy
2
Além disso, parece que Cmd + Alt + Down é mapeado por editor.action.goToDeclaration por padrão a partir de 1.14.2
Ben Creasy
15
É uma pena que o pessoal tenha decidido fechar um tópico de interesse tão óbvio que tenha quase 400 votos e ainda receba visitantes quase 4 anos após a publicação. Desejo que os editores do SO relaxem um pouco e deixem a comunidade crescer e se incentivar. Estou curioso para saber quais respostas pertinentes surgiriam com o conhecimento de 2019. :(
Mike Williamson

Respostas:

580

Pressione Alte clique. Isso funciona no Windows e Linux * e também deve funcionar no Mac.

Agora, mais recursos com vários cursor estão disponíveis no Visual Studio Code 0.2:

Os aprimoramentos de vários cursor
Ctrl+D( Cmd+Dno Mac) selecionam a próxima ocorrência da palavra sob o cursor ou a seleção atual
Ctrl+K Ctrl+Dmove o último cursor adicionado para a próxima ocorrência da palavra sob o cursor ou a seleção atual.
Os comandos usam matchCase por padrão. Se o widget de localização estiver aberto, as configurações do widget de localização (matchCase / matchWholeWord) serão usadas para determinar a próxima ocorrência
Ctrl+U( Cmd+Uno Mac) desfaz a última ação do cursor; portanto, se você adicionou um cursor demais ou cometeu um erro, pode pressione Ctrl+U( Cmd+Uno Mac) para voltar ao estado anterior do cursor. Adicionando o cursor para cima ou para baixo ( Ctrl+Alt+Up/ Ctrl+Alt+Down) ( Cmd+Alt+Up/Cmd+Alt+Down no Mac) agora revela o último cursor adicionado para facilitar o trabalho com vários cursores em mais de uma altura de janela de visualização por vez (por exemplo, selecione 300 linhas e apenas 80 cabem na janela de visualização).

Isso facilita muito a introdução de vários cursores

* Conflito da janela de arrasto do Linux:

Algumas distribuições (por exemplo, Ubuntu) atribuem arrastar janelas Alt+LeftMouse, o que entrará em conflito com o VSCode.

Portanto, as versões recentes do VSCode permitem alternar entre Alt+LeftMousee Ctrl+LeftMouseno menu Seleção, conforme detalhado em outra resposta .

Como alternativa, você pode alterar as ligações de teclas do sistema operacional usando gsettingso mencionado em outra resposta .

vilicvane
fonte
20
Atalhos do teclado ? Eu entendo que é comando + clique. Mas isso é nojento .. não é uma maneira rápida :(
Kiba
8
F2 ou Ctrl + F2 podem ajudar. Mas não encontrei algo como Ctrl + D.
precisa saber é o seguinte
13
Alt + click parece não funcionar no Linux. O que fez o trabalho para mim foi Ctrl + shift + esquerda / direita / cima / baixo
Yonatan Simson
18
alt + shift + clique no mac (2017)
Hoff
5
hmmm, ctrl + alt + cima ou para baixo gira minha tela (em win10) em vez de cursor múltipla
Reinsbrain
158

Cursores / seleção de várias palavras (e várias linhas) no código VS

Multi mundo:

Windows / OS X:

  • Ctrl+Shift+L/ ⌘+Shift+Lseleciona todas as instâncias da palavra destacada atual
  • Ctrl+D/ ⌘+Dseleciona a próxima instância ... e a seguinte ... etc.

Multi-linha:

Para seleção de várias linhas , Ctrl+Alt+Down/ ⌘+Alt+Shift+Downestenderá sua seleção ou posição do cursor para a próxima linha. Ctrl+Right/ ⌘+Rightpassará para o final de cada linha, não importa quanto tempo. Para escapar da seleção de várias linhas, pressione Esc.

Consulte as combinações de teclas do código VS (sensível ao SO)

Dave Everitt
fonte
15
Na minha máquina, o driver de vídeo Intel possui uma tecla de atalho Ctrl-Alt-Down para fazer a tela ficar de cabeça para baixo. Me pegou de surpresa
:)
3
Por que não é o mesmo que o SSMS (e presumivelmente o Visual Studio), que usa Shift-Alt-Down / Up, não Ctrl-Alt-Down ???
Reversed Engineer
@DaveBoltman - eu não sei! Mas você pode personalizar as combinações de teclas.
quer
2
Ctrl-Alt-Down faz sua tela ficar de cabeça para baixo? Como quantos usuários precisavam disso em uma tecla de atalho? G
gman
3
Para desativar a tecla de atalho Intel mudo, você pode simplesmente clique direito no desktop> opções gráficas> Teclas de atalho> Desativar
alxgb
138

Eu tive um problema com a tecla ALT, a correção é alterada alt+clickcomo uma tecla de atalho do Gnome, que clobbers multi-cursor seleciona no VSCode, para super+clickexecutando:

gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Super>"   

Fonte: http://2buntu.com/articles/1529/visual-studio-code-comes-to-linux/

Ivan Ermilov
fonte
7
+1 este método funciona! Assim verificou-se com o Ubuntu 14.04.05 .. No início eu tentei dconf-editore CompizConfigpara mudar "janela movimento" configurações plugin e confuso e quase quebrou meu Ubuntu.
precisa
2
Isso funciona no Ubuntu!
jonan.pineda
11
Use gsettings set org.cinnamon.desktop.wm.preferences mouse-button-modifier "<Super>"para Linux Mint (Canela).
vossad01
Impressionante! Funciona no Ubuntu 16.04.
Bruno Gomes
1
Se você não quiser tocar nas configurações padrão do sistema, também poderá usar "Seleção> Alternar para CTRL + Clique para multicursor". Isso funciona no Linux Mint, por isso também deve funcionar no Ubuntu.
Lsblsb 22/03/19
125

Maio de 2017
A partir da versão 1.13 Adicione vários cursores com Ctrl/ Cmd+Click

VSCodeOs desenvolvedores introduziram uma nova configuração editor.multiCursorModifier,, para alterar a tecla modificadora para aplicar vários cursores ao Cmd+ Clickno macOS e Ctrl+ Clickno Windows e Linux. Isso permite que os usuários provenientes de outros editores, como Sublime Text ou Atom, continuem usando o modificador de teclado com o qual estão familiarizados.

A configuração pode ser definida como:

  • ctrl/Cmd- Mapeia para Ctrlno Windows e Cmdno macOS.
  • alt- O padrão existente Alt.

Há também um novo item de menu Use Ctrl+ Clickpara Multi-Cursorno Selectionmenu para alternar rapidamente essa configuração. insira a descrição da imagem aqui

Os gestos Ir para definição e Link aberto também respeitarão essa configuração e se adaptarão para que não entrem em conflito. Por exemplo, quando a configuração é ctrl/Cmd, vários cursores podem ser adicionados com Ctrl/ Cmd+ Clicke abrir links ou ir para a definição pode ser chamado com Alt+ Click.

Com a correção do problema nº 2106, agora é possível remover também um cursor usando o mesmo gesto em cima de uma seleção existente.

Taras Yaremkiv
fonte
1
Eu estava enlouquecendo por que Ctrl + click não estava funcionando. Não sabia que havia uma opção para alternar. :-)
ankush981
5
A configuração de editor.multiCursorModifierfrom alt para ctrlCmd funcionou muito bem. Agora tudo o que tenho a fazer é ctrl + clique e ele usará vários cursores :) Muchas gracias!
protoEvangelion
Posso mudar para Ctrl + clique, funciona, mas para ir para a definição de classe ou algo desapareceu, como posso corrigir?
Vuong Tran
Esta é a resposta mais útil. Na maioria dos editores, CTRL + clique é usado para seleção múltipla. Não há necessidade de modificar o comportamento do SO para fazer um editor funcionar. Esta opção modifica o comportamento da seleção múltipla para o padrão mais usado.
Ruby Racer
83

Experimente Ctrl+ Alt+ Shift+ ⬇ / ⬆, sem mouse, ou mantenha pressionado "alt" e clique em todas as linhas que desejar.

Nota : Testado no Windows.

Erivan
fonte
21
CMDO + OPTION+ SHIFT+ ⬇ / ⬆funciona para mim no Mac com a versão 1.15.1.
precisa saber é o seguinte
2
No Windows 10 eu sou capaz de fazê-lo sem oshift
Pini Cheyni 7/17/17
2
Você também pode usar a página para cima / baixo para ir mais rápido!
Maxime
sem SHIFTele não estava funcionando para mim thx
BartusZak
1
Instalei a extensão Smart Multi-cursor com alguns recursos avançados, com o atalho Cmd + Alt + (Para cima / Para baixo) para criar o multi-cursor.
Danny
47

CmdO + Option+ Shift⬇ / ⬆funciona para mim no VSCode 1.29.1 mais recente e no OSX High Sierra 10.13.6, MacBook Pro mais recente.

Isso adiciona uma linha vertical para cima / para baixo na tela, como Option+ Clique / Arrastar vertical no texto sublime.

Para adicionar vários cursores em qualquer ponto do seu arquivo , incluindo vários na mesma linha , faça Cmd (or Option)+ Clique em qualquer lugar que você quiser, mostrado neste vídeo . Você também pode procurar texto ( Cmd+ F) repetido várias vezes e pressionar Option+ Returnpara adicionar cursores no final de CADA palavra.

Raymond Gan
fonte
30

No Ubuntu , para habilitar o clique com vários cursores, você precisará reatribuir Alt + clique primeiro, executando o comando abaixo. Isso ocorre porque, por padrão, o Ubuntu usa o próprio atalho e tem precedência.

> gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Super>"
Valentin Miculit
fonte
25

No XFCE, vá para Applications -> Settings -> Settings editor - > xfwm4 -> easy_click(disable value)

Agora você pode Insert Cursorcom Alt+ Clique

Também desabilitei as configurações do L / R Workspace ( ctrl+ alt+ L/R) noSettings -> Window manager -> Keyboard

lava-lava
fonte
1
?? o que é o XFCE aqui?
precisa saber é o seguinte
1
@ Martian2049, é um ambiente de desktop em sistemas operacionais semelhantes ao Unix (Linux, BSD etc). Se você ainda não sabe disso, provavelmente minha resposta não será útil para você, verifique outras respostas.
Lava-lava
Está funcionando depois de desativar o easy_click para mim, obrigado por você ter salvado meu dia.
Mohamed M. Hagag
Está funcionando para mim. Alterei no easy_click ALT para CTRL porque ALT + clique é para mover janelas.
precisa
Boa resposta. Funciona para mim @ lava-lava.
abu abu
18

Não há ligação para exatamente o que você deseja.

A única coisa que se aproxima é Ctrl+, F2que seleciona todos eles de uma só vez.

Você pode vinculá-lo a Ctrl+, Dfazendo o seguinte:

  • Clique em File > Preferences > Keyboard Shortcuts
    Você deve ver um painel cheio das ligações atuais e, à direita, uma lista de ligações personalizadas
  • Nas ligações atuais, pesquise Ctrl+ F2e copie toda a linha e cole-a no painel direito.
  • Pode ser necessário remover a vírgula no final e alterar Ctrl+ F2para Ctrl+ De salvar o arquivo.

Deve ser algo como isto:

// Place your key bindings in this file to overwrite the defaults
[
{ "key": "ctrl+d",               "command": "editor.action.changeAll",
                                    "when": "editorTextFocus" }
]
intrepion
fonte
Posso torná-lo multicursor, sublime, pressionando o botão do mouse?
Miguel
@MigueI ainda não encontrei uma maneira de fazer isso
intrepion
Quando você não deseja pesquisar e substituir, esta é a maneira mais eficiente se você tiver milhares de linhas para editar ao mesmo tempo! VALEU !
Link
10

Ctrl+ Alt+ ⬇ / ⬆adicione cursores acima e abaixo da linha atual. Ainda nem de longe tão bom quanto sublime ou colchetes. Não consigo ver nada equivalente a Ctrl+ Dem sublime no arquivo de atalhos do teclado.

mutex
fonte
3
Para Mac, é: Alt + Commande seta para cima ou para baixo.
Leniel Maccaferri
No Ubuntu isto éCtrl+Shift+Up/Down
tobalr
No Windows, isso parece padrão para "girar a tela".
BlaM 17/09/19
1
Se estiver girando sua tela, esse é o seu driver gráfico, não o Windows. Você pode desativar esse atalho nas configurações gráficas.
Daniel
9

https://code.visualstudio.com/Updates

A nova versão (Visual Studio 0.3.0) suporta mais recursos de vários cursores.

Multi-cursor
Here's multi-cursor improvements that we've made.

⌘D selects the word at the cursor, or the next occurrence of the current selection.
⌘K ⌘D moves the last added cursor to next occurrence of the current selection.
The two actions pick up the matchCase and matchWholeWord settings of the find widget.
⌘U undoes the last cursor action, so if you added one cursor too many or made a mistake, press ⌘U to return to the previous cursor state.
Insert cursor above (⌥⌘↑) and insert cursor below (⌥⌘↓) now reveals the last added cursor, making it easier to work with multi-cursors spanning more than one screen height (i.e., working with 300 lines while only 80 fit in the screen).

E o atalho da seleção de vários cursor muda para cmd + d (é o mesmo que Sublime Text. Lol)

Podemos esperar que a próxima versão suporte recurso mais conveniente sobre o cursor múltiplo;)

HyoJin KIM
fonte
7

No Visual Studio sem mouse: Alt+ Shift+ { Arrow }.

multiprograma
fonte
2
Alt+Shift+{ Arrow }. resultará na cópia da linha atual a partir do código VS V1.18.0
Adarsh ​​Madrecha 11/11
4

Na minha XFCE (versão 4.12), é no Settings -> Window Manager Tweaks -> Accessibility.

Há um campo suspenso Key used to grab and move windows:, defina-o como None.

Alt + O clique funciona agora no código VS para adicionar mais cursor.

Yahya
fonte
4

Você pode fazer o seguinte no menu Seleção:

Captura de tela do menu Seleção no código VS

Pressione / segure Alt+Ctrl+Up Arrow/ Alt+Ctrl+Down Arrow conforme necessário para criar cursores suficientes e, em seguida, Ctrl+Dpode ser usado para expandir as seleções.

David Metcalfe
fonte
3

Mesmo problema no Ubuntu-MATE, mas aqui você o resolve:

gsettings set org.mate.Marco.general mouse-button-modifier "<Super>"
Naoe
fonte
2

Alt + Command + Shift adicionará um cursor à próxima instância do que você selecionou. Por exemplo, um nome de variável ou função

Tanner James
fonte
-3

Alt + Click funciona no OSX. Versão do código 1.14.2

lickybuay
fonte