Posted at

PyCharm でファイルテンプレートを共有する方法 (on Linux, Mac OS)

Python IDE の PyCharm では、マシン間でIDE設定を共有することができます。これで、キーバインドのカスタマイズなども複数のマシン間で共有することができます。

ただ、この設定をしてもファイルテンプレートは共有されません。issue は立っている(IDEA-184753)ので、意図した振る舞いではないようですが、2年前に作成されてから、現在に至っても "In Progress" 状態で、すぐには解決しなさそうな雰囲気です。

試行錯誤の結果、非常にその場しのぎなやり方ながらファイルテンプレートを共有することができたので、その方法をメモがてらシェアします。

なお、設定共有には「設定リポジトリ」を利用するものとします(JetBrains アカウントによるIDE設定同期機能の対象にはファイルテンプレートが入っていないため)

PyCharm で確認したため記事タイトルでは PyCharm としていますが、IntelliJ 系すべてで同じことはできると思います。このあたり試された方はコメントいただけるとありがたいです。


ファイルテンプレートを共有する方法


  1. 公式ページの IDE設定を共有する設定リポジトリを介して設定を共有する の記述に従い、設定リポジトリを設定します。


  2. ローカルの上書き を選択した側のマシンで、以下のコマンドを実行します。ファイルテンプレート保存フォルダが、リポジトリ設定のそれになるようにするためのものです。

# 設定用フォルダに移動 (PyCharm2019.2 はお使いのバージョンに適宜、読み替えてください)

$ cd ~/Library/Preferences/PyCharm2019.2

# 元のローカルにあったファイルテンプレート保存フォルダを移動
$ mv fileTemplates fileTemplates-orig

# ファイルテンプレート保存フォルダとして、リポジトリから持ってきたフォルダが使われるよう、シンボリックリンクを設定
$ ln -s settingsRepository/repository/fileTemplates

PyCharm の設定用フォルダ(~/Library/Preferences/PyCharm2019.2)をのぞくと、settingsRepository/repository 以下に、ファイルテンプレートも含めた設定リポジトリの内容が保存されています。

ただ、PyCharm は設定リポジトリのファイルテンプレートを(なぜか)使ってくれないため、fileTemplate へのシンボリックリンクを手動で作ることで、PyCharm に設定リポジトリのファイルテンプレートを認識させます。

Windows だとシンボリックリンクを貼れないので、ファイルのコピーで代用してください。


ファイルテンプレートを追加・更新する方法

これで、ファイルテンプレートの設定も共有できました。

ただ、そのあとにファイルテンプレートを更新した場合、 設定リポジトリを更新してもファイルテンプレートの更新がリポジトリに反映されません。

なんでだ?というところですが、こちらもアドホックながら、 一度、設定リポジトリの設定を消して、再度設定し直す ことで、更新後のファイルテンプレートがリポジトリに登録されるようになります。

なお、IDE 上からは 設定リポジトリの設定を消すことができない ようなので、手動でファイルをいじる必要があります。

# 設定用フォルダに移動 (PyCharm2019.2 はお使いのバージョンに適宜、読み替えてください)

$ cd ~/Library/Preferences/PyCharm2019.2

# 設定リポジトリ用フォルダを別名に変更(削除でも可)
$ mv settingsRepository settingsRepository-orig

これで設定リポジトリの指定が消えるため、再度、設定リポジトリを指定すればファイルテンプレートも更新後の状態でリポジトリに登録されます。

参考: How do I un-set the settings repository? – IDEs Support (IntelliJ Platform) | JetBrains


最後に

こんなバッドノウハウが不要になる日が早く来ますように!!