Migrating from IntelliJ to Cursor

Hey everyone

We’re seeing lots of developers interested in switching from IntelliJ to Cursor. For those who’ve made the move, we’d love to hear your experiences, especially around:

  • Keybindings - What worked best for you?
  • Extensions - Which ones are essential?
  • Tips & Tricks - Any insights to share?

Whether you’ve had success or hit some roadblocks, your feedback helps us improve the transition for others. Share your thoughts below!

2 Likes

If an IDEA plugin isn’t an option, I’d really like to have a proper keybinding migration tool. The one I found worked to some extent, but it fails to map many functions to corresponding ones on the Cursor side. If I could believe that I could get used to the VSCode family of editors, I might consider relearning them. But I really cannot foresee this happening in the near future. So for now, PyCharm (with CodeGPT subscription) remains my primary IDE and I rotate Cursor, Windsrf, Roocline, Aider as agentic coders. I could stay more in vscode land if my kb muscle memory didn’t fail me at every turn.

For programmers spoiled by a full IDE experience, the vscode family always feels lacking. For almost every Cursor feature, I can name a missing aspect that I’m actually using with PyCharm. And there are many features that are completely missing and depend on a buggy/half-baked/paid extensions.

And finally, if/when JB get their sht together and add proper agentic capabilities to their Asisstant offering, or someone else come up with a roocline like plugin, you may lose many of your dual citizens.

Context: I am an IntelliJ user.

My two biggest asks, asks for any VSCode based editors is:

  1. Cmd + Click: Navigate to declaration, basically need a better way to explore symbols
  2. Better Search:
  • Cmd + F: searching by current file
  • Cmd + Shift + F: search by entire project
  • Cmd + o: search class, file, etc… and tabbing through what you’re searching(class vs file, etc…)
    In each of the search scenarios, results are easily organized with proper syntax highlighting, line numbered, grouped, and Cmd + Click is supported in search results.
  1. Refactor options - super useful, but now I might as well have cursor refactor and update usages or do safe deletes.
  2. Cmd + K to review and commit changes(overall need keybindings mapped, already mentioned)

#1 jumping to declarations is more important as often engineers are in drill down mode.
#2 is useful to see breadth of usage.
(#1 and #2 have always been enough to convert team members to IntelliJ, #3 is always a cherry on top)

My workflow is to have Cursor and IntelliJ open.

IntelliJ is used to search, and jumping.
Cursor is used to execute coding tasks.

@ericzakariasson

Navigating from PyCharm to VSCode/Cursor has been awful, frankly. I came in open-minded but wow…it’s a shame AI IDEs are going the way of VSCode.

Here are some things I miss from PyCharm:

  • (Most Important) Shift + Shift: (A much smarter) Global symbol search. Don’t give me every variable declaration that matches my string. But since you’re going to anyway, then at least let me sort/filter by type. But you can’t. So the actual objects you care about are drowned in one-off variables.
  • The PyCharm settings let you view and customize language formatting with an interface (see image). This is so effective for customizing language formatting.
  • With your customized formatting, you can then cmd+alt+i to Refactor the file accordingly, or Optimize Imports with ctrl+alt+o.
  • You can right-click a file and “Refactor → Move” and it will update all the import statements in the project that point to this file (or not if you don’t want it to).

I guess that’s good for now lol. Regarding the most important first bullet, this should actually be low-hanging fruit for Cursor devs because I read online that with VSCode you can do e.g. #<my_str>:class with the : to filter global symbol results by type. But I think Cursor does not have this atm.

Also in PyCharm:

  • Cmd+E: Opens list of recently opened/edited files to select and reopen. I’m not aware of an equivalent in VSCode.