Aldrich Co
Aldrich Co

Reputation: 587

Is there a way to sync Xcode preferences and keyboard shortcuts across computers?

I'd like to avoid having to do tweaking the keyboard bindings repeatedly for each machine I use Xcode on.

Sort of like copy the settings file to a particular location in the target computer's filesystem; doesn't need Dropbox.

Upvotes: 2

Views: 916

Answers (2)

Mark A. Donohoe
Mark A. Donohoe

Reputation: 30478

Yes, at least for key bindings. I'm assuming you're using Xcode4. If that's the case, your Key Bindings are stored here...

~/Library/Developer/Xcode/UserData/KeyBindings

Just copy the 'sets' you want from one machine to the other and there you go.

Note that unlike Xcode3, Xcode4 now respects global bindings as well. Global bindings are stored here...

~/Library/KeyBindings/DefaultKeyBindings.dict

Global bindings are for instance, if like me, you prefer the way cursor movement is handled in Windows (e.g. Home/End work on the line, CTRL Left/Right jump a word at a time, etc.) you can remap the keys for the overall system, and Xcode4 respects that. In Xcode3, such changes had to be duplicated in its own key bindings file.

Also note that if the same key is defined in both the defaults and the Xcode4 file, the latter 'wins'.

Additionally, you can unmap a system-wide key when using Xcode. This will disable that key when using Xcode, but leave it enabled elsewhere.

(If you open the actual key bindings file in say TextEdit or a PList editor (that's all these files are) then you'll see it still defines the command, but leaves the key itself cleared out.

Something else that may be of interest is KeyBindingsEditor. It's a great editor for creating system-wide shortcuts. While it claims to support Xcode, it doesn't (or rather Xcode 3 and 4 it doesn't. I can't speak to earlier.)

However since again Xcode 4 can utilize system-wide shortcuts now, you can use this indirectly with Xcode. I personally am very happy about that as now, no matter where I am, including Xcode, my keyboard shortcuts are unified across the entire system.

Upvotes: 1

mskw
mskw

Reputation: 10358

Adding to Mark's answer, setup dropbox to point that file to ~/nameofyourchoice on all of your machines, and viola, everything should be synced. You'll need to test it out to see if other machines don't overwrite etc.

Upvotes: 0

Related Questions