Multiple carets and selection ranges
When typing, copying, or pasting, you can toggle multiple carets so that your actions apply in several places simultaneously. Advanced editor actions, such as code completion and live templates are supported as well and will apply to each caret.
The most recently added caret is considered primary. Highlighting of the current editor line, completion lists, and other visual assistance features will apply to the primary caret. This caret will also remain when you turn off multiple carets.
Add, remove, and clone carets
You can add carets in two different ways:
|To existing characters||Using virtual spaces|
|If there is no character, tab, or whitespace at the position where you want to add a new caret, the new caret will be added to the last character position in the target line.||This way you can add new carets anywhere after the last character in any line. As soon as you start typing at a position beyond the end of the line, the necessary number of spaces will be added between the end of the line and the beginning of your input. |
You can enable virtual spaces on the Editor | General page of the Settings/Preferences Ctrl+Alt+S and they are also enabled in the column selection mode.
Add carets at selected locations using mouse
Press Shift+Alt and click the left mouse button at the target location of the caret.
Add carets above or below the current caret using keyboard
Press Ctrl twice, and then without releasing it, press up or down arrow keys.
If virtual spaces are enabled, new carets will be added exactly above or below the current caret position. Otherwise, in lines, which are shorter than the current offset, carets will added at line ends.
Press Ctrl+Shift+A, type Clone caret, and choose the desired action from the suggestion list:
Note that by default these actions are not associated with keyboard shortcuts. You can assign your custom shortcuts to these actions as described in configuring keyboard shortcuts.
Add carets to the end of each line in the selected region
Select a region and press Alt+Shift+G.
Remove multiple carets
Press Esc to delete all the existing carets, except the one that was added last.
Press Shift+Alt and click carets that you want to remove.
Select multiple non-contiguous ranges
When you select multiple text ranges (non-contiguous selection), note the following:
Each selection range is associated with its own caret, so you can start typing to replace all selected ranges with your input, or you can press Left Arrow or Right Arrow to remove the selection ranges but keep multiple carets at beginnings/ends of the ranges.
As soon as selection ranges overlap, they are merged into a single selection range with a single caret.
Selection works independently of the code structure, that is selection ranges can include any characters, identifiers, words in string literals, comments, or their parts. So you have to be careful when changing the selected ranges as they may include different identifiers or their parts.
Select multiple words or text ranges
Press and hold Shift+Alt.
Double-click words you want to select.
Drag the mouse over text ranges you want to select.
Select multiple occurrences of a word or a text range
If you want to select words, set your caret at an occurrence of the desired word. Otherwise, select the desired range with the mouse or with keyboard shortcuts.
Do one of the following:
Successively press Alt+J to find and select the next occurrence of case-sensitively matching word or text range.
Press Ctrl+Alt+Shift+J to select all case-sensitively matching words or text ranges in the document.
To remove selection from the last selected occurrence, press Alt+Shift+J.
After the second or any consecutive selection was added with Alt+J, you can skip it and select the next occurrence with F3. To return the selection to the lastly skipped occurrence, press Shift+F3.
Find and select multiple occurrences of a string
Press Ctrl+F or choose Edit | Find | Find from the main menu. The search pane appears at the top of the active editor.
Enter the string that you want to find and select. To the right of the search string, you will see the number of occurrences in the current document.
Optionally, restrict your search by case Alt+C or to match only whole words Alt+W.
Press Ctrl+Alt+Shift+J or click Select All Occurrences on the toolbar.
Use mouse to select rectangular fragments of text in normal selection mode
Make sure that the column selection mode is disabled.
To select ranges as a single rectangle, press and hold Alt or the middle mouse button.
To select multiple rectangles, press and hold Ctrl+Alt+Shift (Windows or UNIX)/ ⌘⌥⇧ (macOS).
Drag the mouse pointer over desired ranges.
Column selection mode
In the column selection mode, keyboard navigation and selection shortcuts work differently to simplify adding multiple carets and making rectangular selections:
You will be able to set your caret anywhere after the last character in any line. As soon as you start typing at a position beyond the end of the line, the necessary number of spaces will be added between the end of the line and the beginning of your input.
Pressing Shift+Up/ Shift+Down will add a new caret above/below the current one instead of making a continuous selection.
The enabled column selection mode only affects the current editor tab. If you close or reopen the tab, it will switch back to the normal mode.
Toggle between normal and column selection modes
From the main menu, choose.
From the context menu of the editor, choose.
Copy and paste with multiple carets
When text ranges selected with multiple carets are copied Ctrl+C or cut Ctrl+X, selections for each caret are placed to the clipboard as separate lines, even if the original selections were on the same line.
If the column selection mode was enabled, the selection could also include empty spaces after ends of lines. These will be replaced with whitespaces in the clipboard if you copy the selection.
When you paste any multi-line content from the clipboard, you can add multiple carets for each line in desired places, and then press Ctrl+V to paste each line at its own caret.