
目的
IntelliJを複数台の端末に入れていると、キーマップ等を同期したくなります。
この記事ではSetting Repository(GitHub)プラグインを使って同期する方法を共有します。
(基本的には上記GitHubリポジトリのREADMEを読んでそのまま設定するだけです)
PyCharm/PhpStorm/RubyMine等のJetBrainsの他製品についても同じように設定を共有できると思います(未確認)
【注】Qiita等で例えばこちらの記事のようにConfiguration pluginを使った同期方法が書いてありますが、現在はDeprecatedのようです。
Setting Repositoryのインストール
(製品によっては最初からインストール済の場合もあるようです。ma7ma7pipipiさんよりコメント欄にて教えて頂きました)
[Settings] => [Plugins] => [Browse repositories] => Settings Repositoryで検索

インストール後再起動します。
設定
[File] => [Setting Repository]から設定をします。

共有用のUpstream URLが要求されます。githubのリポジトリが使えるので、空のリポジトリを用意し、URLを入力します。

ここでgithubへのusername/passwordが求められますが、トークンを使ったアクセスが推奨されています。
githubでトークンを発行し、usernameにトークンを入力、passwordは空でOKを押して完了です。
(githubでのトークンの発行の仕方はこちらに書いてあります。[Settings] => [Personal access tokens]から作れます。)
これで設定は終わりです。同じ設定を複数台に行うことで同期が出来ます。
同期
同期のタイミングは
- after successful completion of "Update Project" or "Push" actions,
- on application exit or project close.
となっています(GitHub: Setting Repositoryより)。
ただ、僕は今のところ他端末の変更(リポジトリ上の変更)がローカルに反映されるためには明示的に[VCS] => [Sync Settings] => [Overwrite Local]してからでないと反映に成功していません。
(変更のレポジトリへの反映には明示的な操作([VCS] => ...)は必要ないようです)
同期がうまくいかないとき...
localのリポジトリの中のkeymapのファイルを直接gitのコマンドで同期させるのも出来ます。
ファイルの場所のこちらの記事にかいてあります。
Macなら Library/Preferences/IntelliJIdeaXXXX/settingsRepository/repository
になります。