75

What is the best way to sync similar settings across JetBrains IDEs? For example I have PyCharm and PhpStorm, both of which support CSS and HTML, and I would like to have all of the syntax coloring, inspections, etc. be the same for both PyCharm and PhpStorm. Similarly, I have TODO patterns in both IDEs that I'd like to synchronize.

Is there a way to accomplish this that's reliable and not to tedious or complicated?


This is now a feature built into the IDEs.

orome
  • 45,163
  • 57
  • 202
  • 418
  • @DozortsevAnton: Regarding the tag change is IntelliJ IDEA a superset of PyCharm and PhpStorm. I assumed it was a distinct product. – orome Feb 09 '14 at 18:07
  • This applies to all settings, not only support CSS and HTML and not only IDEA and PyCharm, it's concerned also RubyMine or WebStorm. In my opinion sync IDEA with PyCharm or PhpStrom it's not possible. Make you [issue](http://youtrack.jetbrains.com/dashboard) for this feature or [submit request](https://intellij-support.jetbrains.com/anonymous_requests/new). – Anton Dozortsev Feb 09 '14 at 18:28
  • There is **IntelliJ Configuration Server Plugin** -- check it out to see if it can help in such situation. – LazyOne Feb 09 '14 at 19:38
  • 1
    @LazyOne: That only synchronizes settings for a given IDE across machines; I'm looking for a way to synchronize across IDEs for a given machine. – orome Feb 09 '14 at 20:36
  • Maybe you could try to sync the relevant XML config files or parts of them. I guess that could get complicated und unreliable, did not try that. – Sisko78 Feb 11 '14 at 14:56
  • @Sisko78: That's the problem. The files are incompatible as is (e.g, exporting from PyCharm and importing to PhpStorm, or symlinking PhpStorm's to PyCharm's files results in loss of PhpStorms PHP settings) so you'd have fish around in the XML. – orome Feb 11 '14 at 16:28
  • 1
    I'm interested in this too and it's disappointing to see so many upvoted answers answering a completely different question. – Burhan Ali May 26 '22 at 18:30
  • @BurhanAli What I do now is use [a settings repo](https://stackoverflow.com/a/28507576/656912), which works ok but is still not ideal. – orome May 26 '22 at 18:33
  • 1
    @BurhanAli There seems to now be an option. I have not tested it yes, but see my answer below. – nevernotmove Feb 03 '23 at 10:46

8 Answers8

20

There's now the Settings Repository plugin, but it still has quite a large number of bugs in cross-IDE synchronization.

Pang
  • 9,564
  • 146
  • 81
  • 122
RiaD
  • 46,822
  • 11
  • 79
  • 123
  • 10
    I had quite a bad time with this plugin. It seemed initially to be working, but keymaps refused to sync and the whole thing was very buggy. I ended up doing it manually via Import/Export :( – VitalyB Dec 15 '15 at 19:51
  • 6
    Very buggy indeed, every time I restart my IDE it seems like a gamble as to whether or not I will get the settings I want or some random combination of mine and the defaults. – Erik Berkun-Drevnig Apr 14 '16 at 15:47
  • @DovBenyominSohacheski, I didn't use it for cross-IDE sync for a while because I use only CLion now. – RiaD Apr 17 '16 at 13:14
  • 1
    It looks like it's seen many updates since this answer was posted, but reviewers are posting negative reviews currently. – Pup Dec 27 '16 at 18:45
  • what has to be entered as upstream URL? I'm trying the git-URL but I always get `NoSuchMethodError` – swalkner Jan 02 '17 at 07:52
  • @swalkner You should paste URL which you would use to clone the repo (you need to create repo first) – RiaD Jan 02 '17 at 08:04
  • I did create a repo (it's the one from the iOS project); the URL looks like `git@bitbucket.org:myUser/myProject.git` or `https://myUser@bitbucket.org/myTeam/myProject.git` – swalkner Jan 02 '17 at 08:08
  • well, it should better be separate repo (but I wouldn't expect error you mention in that case). `git@github.com:user/repo.git` works for me. Probably you can ask support if that doesn't work – RiaD Jan 02 '17 at 08:12
  • 1
    Although this looks like the correct answer it should be stated very strongly that as of early 2017 this plugin will still likely DESTROY your settings. Check the comments on the linked plugin page before installing. – Rachel K. Westmacott Mar 22 '17 at 10:20
  • There is a first class support of this since [2017.3](https://blog.jetbrains.com/idea/2017/09/intellij-idea-2017-3-eap-better-synchronization-of-your-settings-across-devices-and-other-improvements/) – Sam Dec 19 '17 at 06:32
  • Update in 2019: still doesn't work (tried with Ultimate and CLion) – Cris Mar 18 '19 at 14:35
  • As of 2021. I've used this for a few years now. Sometimes it works amazingly, and sometimes it messes up a conflict and you lose many things. I hope there will be a better way soon. – CLOVIS Mar 26 '21 at 14:25
  • 2022 still doesn't work – Lang Minh Nguyên May 19 '22 at 10:52
16

No, there is not, however there is an open feature request for this to be added to JetBrains' IDEs.

orome
  • 45,163
  • 57
  • 202
  • 418
  • 1
    has there been an update on this recently? Or a new way to achieve the same thing? I could not see activity on the issue for a long time. – chaudharyp Jan 10 '16 at 16:00
  • Fortunately, this is no longer true, please check the other answers. – Vojtech Ruzicka Jun 25 '18 at 09:10
  • 2
    All the other answers are answering a different question. – John Sardinha Aug 20 '18 at 09:32
  • Note that there is still no way to do this (answers here and documentation notwithstanding). For example, disconnecting from the single product online sync to use exports/imports or a repo to sync multiple product fails to even preserve the settings for a single product. – orome Apr 27 '22 at 14:45
8

Not relevant to the question asked, but possibly helpful in other situations:

Setting Repositories

The first way to synchronize settings is using Settings Repositories. The way it works is that it uses an external Git repository to share the settings. Each IDEA instance then connects to this repository to fetch the settings. In case one instance makes changes in the settings it can be propagated back to the repository. What's nice is that it is a plain old Git repo. That means your settings are backed up and under version control. So you can track and rollback the changes if necessary or even allow other people to create Pull Requests with some tweaks to your settings.

To enable this feature just go to:

File → Settings Repository

To configure multiple repositories go to

Settings → Tools → Settings Repository

What is it good for? Well, maybe there are some settings you want to share with your teammates to ensure consistency on your project. But then, of course, you want some of your setting to be personal and just for you. After all, every user has different preferences.

Synchronize settings using JetBrains Account

The second way of settings synchronization was available for some time as a standalone optional IDE plugin (which required an invitation to use), but now is integrated and enabled by default since 2017.3. It utilizes your JetBrains account to synchronize the data.

Under the hood, it actually uses a variation of Settings Repository mechanism, but you are shielded from it. It is much more convenient because you don't have to create a Git Repo to store the settings and provide its address to your IDE. On top of that, unlike Settings Repositories, it allows you to also synchronize your installed plugins.

The first thing you need to do is to make sure you have a JetBrains account. Once you have your JetBrains account, you'll need to Log in to IDEA using it. Just head to Help → Register. Then you just need to select Activate new License with JetBrains Account and enter your credentials. Then click Activate.

After your JetBrains account is linked, you should see a new Gears icon which is used to manage Settings synchronization: enter image description here

Installed plugin synchronization is handled separately from the rest of the settings. You can either manually trigger plugin sync or enable silent automatic synchronization of your plugins in the background.

enter image description here

More detailed instructions

If you are interested in more detailed instructions and explanations, you can find them it this blog post I wrote:

IntelliJ IDEA Tips & Tricks: Synchronization and Sharing of Settings

orome
  • 45,163
  • 57
  • 202
  • 418
Vojtech Ruzicka
  • 16,384
  • 15
  • 63
  • 66
  • 8
    What does this answer have to do with the question: syncing my various different (local) JetBrains IDEs (e.g. syncing my local PyCharm syntax coloring with my IntelliJ coloring)? – orome Jun 26 '18 at 20:06
  • It does sync the settings through jetbrains account or git repo. – Vojtech Ruzicka Jun 27 '18 at 05:38
  • 2
    The Jetbrains approach seems to apply only to one kind of IDE on different machines, not all the various IDEs on one local machine. – orome Jun 27 '18 at 11:22
  • I see, sorry. Still this may be helpful for others searching for how to sync settings. – Vojtech Ruzicka Jun 27 '18 at 12:41
7

There seems to now be a setting to sync across all products: enter image description here

I have not tried it yet, as I just stumbled onto it.

nevernotmove
  • 186
  • 1
  • 2
  • 5
  • If you do not see these settings, you have to install the [Settings Sync](https://plugins.jetbrains.com/plugin/20868-settings-sync) plugin – somethingRandom May 01 '23 at 17:46
6

2021 new feature:

File -> Manage IDE Settings -> Sync Settings to JetBrains Account

It takes care of the sync for you in the background to all your JetBrains IDEs, hands free.

enter image description here

Ascendant
  • 2,430
  • 3
  • 26
  • 34
4

I was able to transfer settings from PyCharm Professional 2020.2.2 to IntelliJ IDEA Ultimate 2020.2.2 like so:

In PyCharm I selected File > Manage IDE Settings > Export Settings and exported a settings.zip archive. In IntelliJ I selected File > Manage IDE Settings > Import Settings and imported this archive. IntelliJ told me the import was successful.

This does the trick as far as I can tell, but I wouldn't be surprised if this doesn't work for all JetBrains IDE pairs.

Battery_Al
  • 779
  • 1
  • 5
  • 20
3

You can use the new Settings Sync plugin that has just been released. It lets you sync UI and editor settings, keymaps, and the list of enabled and disabled plugins across all IntelliJ-platform-based IDEs. https://plugins.jetbrains.com/plugin/9922-ide-settings-sync

Little My
  • 170
  • 1
  • 2
  • 1
    Does this sync among different IDEs locally (e.g. between PyCharm and IntelliJ IDEA)? – orome Aug 11 '17 at 13:34
  • 1
    yes, it does. it syncs between any instances of intelliJ-based IDEs, not matter if they are installed on the same machine or not. It supports synchronization of editor schemes, color schemes, keymaps and plugins. Changing any of these settings invokes auto sync after you've applied them and closed the Settings/Preferences dialog. When you run a different IDE instance (or activate it after more than one hour of inactivity), all modified settings will be updated automatically. Plugins are updated either automatically or manually (this is configurable) – Little My Aug 14 '17 at 12:42
  • 5
    This is authors statement: Alexander Lobas "Now sync works for same products only. Idea <-> Idea, PhpStorm <-> PhpStorm, ..." – krizajb May 30 '18 at 17:41
-2

You can copy over the things in codestyles folders: http://www.jetbrains.com/idea/webhelp/copying-code-style-settings.html

I haven't explored other settings, though - but a quick diff is telling me that colors folder is probably completely compatible. You might even be able to get away with symlinking?

  • 1
    Did you actually try this with different languages (which is what the question is about)? – orome Sep 14 '14 at 20:07