How can you create multiple cursors in Visual Studio Code

Visual Studio-Code

Visual Studio-Code Problem Overview


What are the keyboard shortcuts for creating multiple cursors in VS Code?

Visual Studio-Code Solutions


Solution 1 - Visual Studio-Code

Press Alt and click. This works on Windows and Linux*, and it should work on Mac, too.

More multi-cursor features are now available in Visual Studio Code 0.2:

> Multi cursor improvements
Ctrl+D (Cmd+D on Mac) selects next occurrence of word under cursor or of the current selection
Ctrl+K Ctrl+D moves last added cursor to next occurrence of word under cursor or of the current selection
The commands use matchCase by default. If the find widget is open, then the find widget settings (matchCase / matchWholeWord) will be used for determining the next occurrence
Ctrl+U (Cmd+U on Mac) undoes the last cursor action, so if you added a cursor too many or made a mistake, you can press Ctrl+U (Cmd+U on Mac) to go back to the previous cursor state. Adding cursor up or down (Ctrl+Alt+Up / Ctrl+Alt+Down) (Cmd+Alt+Up / Cmd+Alt+Down on Mac) now reveals the last added cursor to make it easier to work with multiple cursors on more than 1 viewport height at a time (i.e. select 300 lines and only 80 fit in the viewport).
This makes it a lot easier to introduce multiple cursors

* Linux drag-window conflict:

> Some distros (e.g. Ubuntu) assign window dragging to Alt+LeftMouse, which will conflict with VSCode.

> So, recent versions of VSCode let you toggle between Alt+LeftMouse and Ctrl+LeftMouse under the Selection menu, as detailed in another answer.

> Alternately, you could change your OS key bindings using gsettings as mentioned in another answer.

Solution 2 - Visual Studio-Code

Multi-word (and multi-line) cursors/selection in VS Code

Multi-word:

Windows / OS X:

  • Ctrl+Shift+L / ⌘+Shift+L selects all instances of the current highlighted word
  • Ctrl+D / ⌘+D selects the next instance... and the one after that... etc.

Multi-line:

For multi-line selection, Ctrl+Alt+Down / ⌘+Alt+Shift+Down will extend your selection or cursor position to the next line. Ctrl+Right / ⌘+Right will move to the end of each line, no matter how long. To escape the multi-line selection, hit Esc.

See the VS Code keybindings (OS sensitive)

Solution 3 - Visual Studio-Code

May 2017
As of version 1.13 Add multiple cursors with Ctrl / Cmd + Click

VSCode developers have introduced a new setting, editor.multiCursorModifier, to change the modifier key for applying multiple cursors to Cmd + Click on macOS and Ctrl + Click on Windows and Linux. This lets users coming from other editors such as Sublime Text or Atom continue to use the keyboard modifier they are familiar with.

The setting can be set to:

  • ctrl/Cmd - Maps to Ctrl on Windows and Cmd on macOS.
  • alt - The existing default Alt.

There's also a new menu item Use Ctrl + Click for Multi-Cursor in the Selection menu to quickly toggle this setting. enter image description here

The Go To Definition and Open Link gestures will also respect this setting and adapt such that they do not conflict. For example, when the setting is ctrl/Cmd, multiple cursors can be added with Ctrl / Cmd + Click, and opening links or going to definition can be invoked with Alt +Click.

With fixing Issue #2106, it is now possible to also remove a cursor by using the same gesture on top of an existing selection.

Solution 4 - Visual Studio-Code

I had problem with ALT key, fix is to change alt+click as a Gnome hotkey which clobbers multi-cursor select in VSCode, to super+click by running:

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

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

Solution 5 - Visual Studio-Code

Try Ctrl+Alt+Shift+⬇ / ⬆, without mouse, or hold "alt" and click on all the lines you want.

Note: Tested on Windows.

Solution 6 - Visual Studio-Code

Cmd+Option+Shift⬇ / ⬆ works for me on newest VSCode 1.29.1 and newest OSX High Sierra 10.13.6, Macbook Pro.

This adds a vertical line up/down on screen, like Option+Click/Vertical Drag does in Sublime Text.

To add multiple cursors at any points in your file, including multiple ones on the same line, do Cmd (or Option)+Click anywhere you want, shown in this video. You may also search for text (Cmd+F) that repeats multiple times, then press Option+Return to add cursors at end of EACH word.

Solution 7 - Visual Studio-Code

On XFCE, go to Applications -> Settings -> Settings editor - > xfwm4 -> easy_click(disable value)

Now you can Insert Cursor with Alt + Click

I've also disabled L/R Workspace (ctrl + alt + L/R) settings in Settings -> Window manager -> Keyboard

Solution 8 - Visual Studio-Code

On Ubuntu, in order to enable multi-cursor clicking you will need to re-assign Alt+click first, by running the command below. This is because by default Ubuntu uses the shortcut itself and has it takes precedence.

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

Solution 9 - Visual Studio-Code

As of Visual Studio Code version 0.10.9, you can now do a Create Multiple Cursors from Selected Lines by selecting multiple lines, and pressing Shift+Alt+I

Note: This is similar to Sublime Text's Ctrl+Shift+L functionality.

Source: https://code.visualstudio.com/updates/vJanuary#_thank-you
Relevant PR: https://github.com/Microsoft/vscode/pull/1479

Solution 10 - Visual Studio-Code

There is no binding for exactly what you want.

The only thing that comes close is Ctrl+F2 which will select all of them at once.

You can bind it to Ctrl+D doing the following:

  • Click on File > Preferences > Keyboard Shortcuts
    You should see a pane full of the current bindings and on the right a list of custom bindings
  • In the current bindings, search for Ctrl+F2 and copy that whole line and paste it into the right pane.
  • You might have to remove the comma at the end and then change Ctrl+F2 to Ctrl+D and then save the file.

It should look something like this:

// Place your key bindings in this file to overwrite the defaults
[{ "key": "ctrl+d",               "command": "editor.action.changeAll",                                    "when": "editorTextFocus" }]

Solution 11 - Visual Studio-Code

Ctrl+Alt+⬇ / ⬆ add cursors above and below the current line. Still nowhere near as good as sublime or brackets though. I can't see anything equivalent to Ctrl+D in sublime in the keyboard shortcuts file.

Solution 12 - Visual Studio-Code

https://code.visualstudio.com/Updates

New version (Visual Studio 0.3.0) support more multi cursor feature.

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).

And short cut of select multi cursor change into cmd + d(it's same as Sublime Text. lol)

We can expect that next version supports more convenient feature about multi cursor ;)

Solution 13 - Visual Studio-Code

Alt+Click. It works in Windows.

Details: Visual Studio Code Documentation

Solution 14 - Visual Studio-Code

In Visual Studio without mouse: Alt+Shift+{ Arrow }.

Solution 15 - Visual Studio-Code

In my XFCE (version 4.12), it's in Settings -> Window Manager Tweaks -> Accessibility.

There's a dropdown field Key used to grab and move windows:, set this to None.

Alt + Click works now in VS Code to add more cursor.

Solution 16 - Visual Studio-Code

You can do the following per the Selection menu:

Screenshot of Selection menu in VS Code

Press/hold Alt+Ctrl+Up Arrow/Alt+Ctrl+Down Arrow as required to create sufficient cursors, then Ctrl+D can be used to expand the selections.

Solution 17 - Visual Studio-Code

Same issue on Ubuntu-MATE, but here you resolve it by:

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

Solution 18 - Visual Studio-Code

Alt + Command + Shift will add a cursor to the next instance of what you've selected. E.g. a variable or function name

Solution 19 - Visual Studio-Code

On windows:
CTRL+Click if you are using vscode
CTRL+Alt+Click if you are using visual studio

Solution 20 - Visual Studio-Code

For Ubuntu Users

ALT + SHIFT + ⬇ / ⬆

Solution 21 - Visual Studio-Code

Alt + Click works in OSX. Code Version 1.14.2

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKibaView Question on Stackoverflow
Solution 1 - Visual Studio-CodevilicvaneView Answer on Stackoverflow
Solution 2 - Visual Studio-CodeDave EverittView Answer on Stackoverflow
Solution 3 - Visual Studio-CodeTaras YaremkivView Answer on Stackoverflow
Solution 4 - Visual Studio-CodeIvan ErmilovView Answer on Stackoverflow
Solution 5 - Visual Studio-CodeErivanView Answer on Stackoverflow
Solution 6 - Visual Studio-CodeRaymond GanView Answer on Stackoverflow
Solution 7 - Visual Studio-Codelava-lavaView Answer on Stackoverflow
Solution 8 - Visual Studio-CodeValentin MiculitView Answer on Stackoverflow
Solution 9 - Visual Studio-CodeRoberto SalomeView Answer on Stackoverflow
Solution 10 - Visual Studio-CodeintrepionView Answer on Stackoverflow
Solution 11 - Visual Studio-CodemutexView Answer on Stackoverflow
Solution 12 - Visual Studio-CodeHyoJin KIMView Answer on Stackoverflow
Solution 13 - Visual Studio-CodeRigoberto Ramirez CruzView Answer on Stackoverflow
Solution 14 - Visual Studio-CodemultiprogrammView Answer on Stackoverflow
Solution 15 - Visual Studio-CodeYahyaView Answer on Stackoverflow
Solution 16 - Visual Studio-CodeDavid MetcalfeView Answer on Stackoverflow
Solution 17 - Visual Studio-CodeNaoeView Answer on Stackoverflow
Solution 18 - Visual Studio-CodeTanner JamesView Answer on Stackoverflow
Solution 19 - Visual Studio-CodeJhonnatan PanochView Answer on Stackoverflow
Solution 20 - Visual Studio-CodeAbdelrahman ShomanView Answer on Stackoverflow
Solution 21 - Visual Studio-CodelickybuayView Answer on Stackoverflow