Pasting data in multiple cursor mode

2020-02-11 07:05发布

问题:

in vs code I have the following file

1
2
3

a
b
c

Now I do the following steps

  1. cut the lines a b c.
  2. select the lines 1, 2, 3 and then go into multiple cursor mode (shift, alt I).
  3. 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

回答1:

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,



回答2:

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.