Do you want your ad here?

Contact us to get your ad seen by thousands of users every day!

[email protected]

Working with Multiple Carets in IntelliJ IDEA

  • November 14, 2021
  • 64032 Unique Views
  • 4 min read
Table of Contents

Sometimes you need to modify multiple lines of code on separate lines inside IntelliJ IDEA with the same change. The fastest way to achieve that is with multiple carets. In IntelliJ IDEA you can:

  • Create multiple carets in a vertical line
  • Create multiple carets at the end of lines
  • Create multiple carets at any point in your code

Sponsored Content

Declutter Your Code: Your Undead Code Is A Time Vampire

The average Java application contains somewhere between 10 to 50% dead code. In this webinar we'll discuss ways of monitoring JVMs across different environments to identify what runs or doesn't run in each, identify what you can get rid of, and how to work better on these larger applications.

Sign Up Here

Create Multiple Carets in a Vertical Line

Creating carets that are stacked vertically where you have content on different lines, like a list, can save you a lot of time when you're editing your code.

  • macOS press Option twice and hold it down the second time. Then use the arrow keys (up or down)
  • Windows press Ctrl twice and hold it down the second time. Then use the arrow keys (up or down)

Let's say you have defined some variables at the start of your class, but retrospectively you realise that their scope should be private, and since we're defining them here, they should also be final:

public String oak = "Oak";
public String sycamore = "Sycamore";
public String pine = "Pine";

You could click each one and replace public with private but there's a faster way in IntelliJ IDEA. You can press Option (macOS), or Ctrl (Windows/Linux) twice, holding it down the second time you press it and then use arrow keys to create a tower of vertical carets. You can then replace public with private just once, not three times. You can also add final since you're here:

Modifying variables with multiple carets

How about dealing with a big list that you've pasted into your code? How can you inline everything? First let's make an array for our data, then we can use the same clone caret operation before wrapping it in braces and completing the statement:

Inlining a long list

Finally, how about HTML tags? Again, it's the same process:

HTML tags and multiple carots

Create Multiple Carets at the End of Lines

Content at the start of your line is likely to be left-aligned, but that's not the case at the end of your line. We can deal with that by using the mouse to drag the caret down, instead of the vertical arrow keys.

Place your cursor to the far right of the furthest line of code and:

  • macOS hold down Option and drag the mouse down (or up)
  • Windows hold down Alt and drag the mouse down (or up)
    • Note that for Windows the shortcut for this one is Alt, not Ctrl

Let's say that you want to add something to the end of each of these strings, for example:

public final String lion = "Lives in Africa";
public final String stoat = "Lives in the United Kingdom";
public final String wolf = "Lives in Europe";

This time, instead of cloning the caret in a vertical line with the down arrow, hold down Option (macOS), or Alt (Windows/Linux) and use the mouse to place your caret to the right of the all the lines and then drag the mouse down. The caret will be placed at the end of each line. You can then add the text even though the lines are not in a straight line:

Multiple carets at the end of the line

Create Multiple Carets at Any Point in Your Code

And finally, what if you want multiple carets, but not in a stacked vertical line or at the end of each line? Again, the shortcut is similar:

  • macOS hold down Option and then Shift and click where you want the caret
  • Windows hold down Alt and then Shift and click where you want the caret

Let's say you want to add "Name" to these variables, but only to some of them:

Multiple carets at the end of the line

Summary

There's lots of places that multiple carets are helpful in IntelliJ IDEA, especially when you're working with lists. Just remember that for carets in a vertical line, press Option (macOS) and Ctrl (Windows/Linux) twice, holding it down the second time.

For carets to the right of a line hold down Option (macOS), or Alt (Windows/Linux) and drag the mouse pad/wheel down (or up).

For random carets, you add press and hold Option+Shift (macOS), or Alt+Shift (Windows/Linux), then click anywhere to place extra carets.

Multiple carets can also be created using Column Selection Mode. There is an example of this, and the techniques we talked about above, in this video from JetBrains, specifically at this time point. There are lots of other helpful tips in the video as well.

Do you want your ad here?

Contact us to get your ad seen by thousands of users every day!

[email protected]

Comments (6)

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Syam Pillai avatar

Syam Pillai

4 years ago

Great article. I never knew about this!! I only knew about the Column Selection Mode. Thank you.

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

"Créer plusieurs cigurie à la fin des lignes de Intellij" Code Réponse - Coder les réponses

3 years ago

[…] La Source Étiquetteswhatever […]

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

"Créer plusieurs cigurie à tout moment de votre code" Réponse de code - Coder les réponses

3 years ago

[…] La Source Étiquetteswhatever […]

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

"Créer plusieurs cadres dans une ligne verticale" Réponse de code - Coder les réponses

3 years ago

[…] La Source Étiquetteswhatever […]

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

It’s My Last Day at JetBrains - Helen Scott

3 years ago

[…] Faster in IntelliJ IDEA for ICPC. Yes, I’ll move on soon, but I also created this blog on Working with Multiple Carets in IntelliJ IDEA which is still the most popular blog on foojay […]

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Getting started with IntelliJ IDEA - Helen Scott

2 years ago

[…] Maybe you want to make the same change in multiple places; IntelliJ IDEA allows you to create multiple carets either in a stacked list or randomly as required. (⌥ | Ctrl) twice, holding it down the second time and then pressing the Down arrow to create a stack of carets or by clicking in your code to add a caret. You can learn more about this feature from this blog post on foojay. […]

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard