in vs code I have the following file
1
2
3
a
b
c
Now I do the following steps
- cut the lines a b c.
- select the lines 1, 2, 3 and then go into multiple cursor mode (shift, alt I).
- go to the end of the each number press and type a , and then do a paste.
The result is
1, a
b
c
2, a
b
c
3, a
b
c
but the result I wanted is
1, a
2, b
3, c
Using Shift+Alt+I, you need to cut the text in multiple cursor mode as well:
1Enter2Enter3EnterEnteraEnterbEnterc
Shift+↑↑
Shift+Alt+I
Shift+←
Ctrl+X
↑↑↑↑→
,
Ctrl+V
As of the 1.23.1 April update, a more convenient, middle mouse button selection can be used.
With the cursor and keyboard,
Instead of cutting the lines like normal, select from the end of the cursor to the beginning while in multi-cursor mode while holding Ctrl+Shift. After cutting the text with Ctrl+X, select with multiple cursors again by holding Ctrl+Shift. Then, type , and paste with Ctrl+V like you described.
You can also use Ctrl+Alt+Shift and the direction arrows to select with multiple cursors,
Sometime ago this functionality was apparently added. You can simply cut to your clipboard and then paste to multiple cursors - and, if there are the same number of lines on the clipboard as multiple cursors - each cursor will get one line from the clipboard.
You no longer need to be in multi-cursor mode for the cut or however you got the text onto the clipboard.
Just cut it.
Demo:
VSCode 1.39 added this setting:
Editor: Multi Cursor Paste
Controls pasting when the line count of the pasted text matches the
cursor count.
"editor.multiCursorPaste": "spread"
that will do what you want.
There is a second option full
where each cursor will get the entire clipboard text. See https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_39.md#new-option-for-multi-cursor-pasting. Demo of the full
option:
From the multi-cursor paste release notes:
New option for multi cursor pasting
In the past, when pasting multi-line text from the clipboard, VS Code
would check if the clipboard text line count matches the cursor count,
and if it does, it would "distribute"/"spread" each line to a cursor.
This behavior is now tunable via the editor.multiCursorPaste setting,
which can have the values:
spread - Each cursor pastes a line of text (default).
full - Each cursor pastes the full clipboard text.