Key Mapping Interchange between IDEs

I use 5 of the Jet Brains products and I'm _constantly_ trying to fix my key mappings between each of them to be consistent with the set I memorized a dozen years back.

I completely understand that not all key mappings make sense in all IDEs. However, the bulk of the commands are the same across IDEs.

I've tried exporting/importing key mappings from and into phpStorm, Rider, AppCode, DataGrip and WebStorm every way I can think of and in both directions. I've tried using a settings repository in git. I've tried configuring Toolbox to set the same configuration folder for all applications.

If you guys could *please* tell me how to do this correctly it would be greatly appreciated. 

I don't care if it is some complex solution where I have to hook my own code into your stack somehow. Just tired of having this problem.

13 comments
Comment actions Permalink

Please can you specify what problems sharing keymaps between IDEs (using Settings repository) you have faced?

0
Comment actions Permalink

The fundamental problem statement is this:

If I set up a keyboard shortcut for "Split Vertical" as "^S,V" in WebStorm, I then have to go assign it manually in Rider, DataGrip, RubyMine, AppCode, PHPStorm, and PyCharm.

I've tried synchronizing settings through a git repository, and I've tried exporting and importing settings. I've tried creating "custom keymaps" and that has also failed.

The following is a detailed walk through on one of the many attempts I've made to get the keybindings synchronizing between the IDEs.

0) Freshly install WebStorm and Rider, select the "Do not import settings" option on initial startup

1) Open WebStorm, Open Preferences, Navigate to Keymap

2) Create a copy of "Mac OS X 10.5+" and name it "Adam-Custom"

3) Assign the keyboard short cut "^S, V" to "Split Vertically"

4) Open the File Menu and select 'Settings Repository'

5) In the dialog that opens, input the repository path

6) Select the "Overwrite Remote" option, then close WebStorm

7) Open Rider

8) Open the File Menu and select 'Settings Repository'

9) Provide the same repository path

10) Select the "Overwrite Local" option

11) Open Preferences and navigate to Keymap

12) When I open the Keymap drop down list and look for "Adam-Custom", it is not present

I've also tried the above steps by just modifying the built in key mappings like "Mac OS X 10.5+"
Even though "Mac OS X 10.5+" exists in both Rider and WebStorm, changes to one key mapping are not synchronized to the key mapping of the same name in the other IDE.

Consider that one of JetBrain's advantages is that nearly every function of the software can be key mapped. I love that aspect. So long as I was only using one of your IDEs, this problem never came up. Now that I've decided I like your product enough to replace all of my IDEs with your tools, I have this issue.

I'm really hoping that I have missed something obvious and that there is a simple fix to this.

1
Comment actions Permalink

Looks similar to https://youtrack.jetbrains.com/issue/IDEA-147760

When I hit "Overwrite Local" for the first time, settings are actually synchronized (files copied to current IDE configuration dir), but aren't applied (i.e. I can't see my keymaps, etc. when I open preferences). Restarting the IDE or running "Overwrite Local" for the second time fixes the issue

0
Comment actions Permalink

I run into the same problem as Adamlenda. I use several Jetbrains product and love the ability to remap keys. But I have to do this for every product:

- Webstorm

- Goland

- Pycharm

- Datagrip

It quickly adds up.

 

As a user I want to have my keymapping shared between all ide's.

10
Comment actions Permalink

I found that, after syncing the settings repository, by pressing "overwrite local", I needed to select the keyboard mapping. For example, if in one tool I had made a keymap called "default-copy", then in the second tool, after syncing, I had to go into settings and select the "default-copy" keymap. (The same is true for the color scheme.)

2
Comment actions Permalink

I have never gotten this to work, it is downright embarrassing at this point.

They have the best IDE's in the market, and they have never been able to make this seemingly simple thing work.

I'm seriously considering switching this shit is driving me crazy.

2
Comment actions Permalink

charles sanders

It is a pain in the but for sure. I've got it working using the settings repo solution.

The built-in settings sharing feature has never worked right for me.

At this point, I have even setup additional "read only" repos for sharing settings within specific teams w/o messing with my globally shared settings.

Hit me up on Skype (adam.lenda) and I'll try to help you through it.

--Adam

1
Comment actions Permalink

@Cluengo thank you that worked for me. (https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000553984/comments/360000303240)

It seems PyCharm was in fact syncing to my settings repository (which is an export of my IntelliJ settings), but it was not then automatically choosing the custom keymap. This actually makes sense since you're just saving all of your settings to the settings repository, without a concept of the "currently active" keymap but it does seem to be creating a common gotchya even for very experienced users like myself and others posting here.

0
Comment actions Permalink

I just use PHPStorm and PyCharm (on Mac and Linux), and doesn´t understand why I have to use two Keyboard Shortcuts on some actions.  For example:

Delete Complete Line (Mac)

  • PHPStorm: Cmd+BackSpace
  • PyCharm: Cmd+Y

And there are others, like Run, Select Word, Find Next, Close Tab, and etc

Would be nice to remember just one keyboard map

 

0
Comment actions Permalink

The trick for me with syncing me keymap is what Cluengo mentioned: simply syncing the settings wasn't enough, I needed to select the custom keymap from the dropdown in the keymap settings. My IDE didn't pick up automatically that I wanted to use the custom keymap. It was still using the default. Thanks for the tip Cluengo!

0
Comment actions Permalink

I managed to transfer settings manually between PhpStorm and Goland:

copy file from

/Users/argon/Library/Application Support/JetBrains/PhpStorm2022.2/jba_config/mac.keymaps/macOS Argon.xml

to

/Users/argon/Library/Application Support/JetBrains/GoLand2022.2/jba_config/mac.keymaps/macOS Argon.xml

(IDEs installed via JetBrains Toolbox)

To find correct file path, here is what you need to do: create keymap with bright name like COPYME (I also added one random key mapping for sure but it must not be mandatory), then use shell's find to search for file COPYME.xml, this is the folder where your keymap must be in, in the other IDE path must be similar, otherwise you can repeat COPYME trick.

So copy from one into another and you are done. Keymappings file contains only reassigned keys, the rest is inherited from parent scheme (see file contents, it is easy understandable).

Warning! After you copied file into target IDE's folder, restart that IDE, then it will see new keymap in dropdown list of available keymaps.

1
Comment actions Permalink

I tried to use settings repo, but the need to reset whole settings is too brutal, so I rather copy-paste configs once, since I dont need to change them often. But If you really need, you can do same trick with settings repo: when you press "File -> Manage IDE settings -> Restore default settings" IDE will make backup copy of all your settings (and shows where it is on your filesystem), so you get folder with config files to copy from. When using Settings repo it seems like it uses some different paths for some configs, you can investigate them by these COPYME trick that I described above.

0

Please sign in to leave a comment.