【Mac】Dropbox+シンボリックリンクで設定ファイルを共有する
自宅でソフトの設定を変更した時、職場でもいちいち同じ作業を手作業でしないといけないのって面倒ですよね?そんな時でも、ソフトの設定がファイルで管理されている場合限定ですがDropbox+シンボリックリンクで簡単に設定を共有できて便利です。今回はその方法をご紹介します。
好きな言葉は自動化、嫌いな言葉は手作業の新入りたにっぱです。
というわけで1発目は、自宅⇔職場間のソフト設定を自動で同期する方法に関して書きたいと思います。
自宅でソフトの設定を変更した時、職場でもいちいち同じ作業を手作業でしないといけないのって面倒ですよね?
そんな時でも、ソフトの設定がファイルで管理されている場合限定ですがDropbox+シンボリックリンクで簡単に設定を共有できて便利です。
シンボリックリンク?
超大雑把に言うとファイルやディレクトリへのショートカットを作る機能です。
シンボリックリンクはターミナルから以下のコマンドを入力すれば生成することが出来ます。
ln -s [元となるファイル] [ショートカットを置く場所]
わかりにくいですね!コマンドだけ見てもよくわからないので実例を出したいと思います。
例:Sublime Text2の設定共有
皆大好きSublimeText2の設定ファイル共有を例に実際の使い方を紹介したいと思います。
手順1:既存の設定ファイルをDropbox管理フォルダ内に移動
まずSublimeText2の設定ファイルをDropboxフォルダ内に移動させます。
SublimeText2の設定ファイルは「~/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settings」にあります。
自分の場合は上記ファイルを「~/Dropbox/Settings/SublimeText/Preferences.sublime-settings」に配置しているので、その前提で進めていきます。
手順2:設定ファイルを削除
これからはDropboxフォルダ内の設定ファイルを使用していくので、元々あった設定ファイルは削除してしまいます。
コマンドで削除する場合は下記コマンドですね。(もちろんFinderから削除しても全然問題ないです。)
# コマンドの場合、半角スペースの前にバックスラッシュを入れるのを忘れないように! rm ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/User/Preferences.sublime-settings
手順3:シンボリックリンクを生成
ここでやっとシンボリックリンクの生成をします。
コマンドは
ln -s [元となるファイル] [ショートカットを置く場所]
でしたね。
それで、今回「元となるファイル = Dropbox内の設定ファイル」で、「ショートカットを置く場所 = 本来設定ファイルがあるべき場所」なので今回の例では以下のようになります。
ln -s ~/Dropbox/Settings/SublimeText/Preferences.sublime-settings ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/User/Preferences.sublime-settings
これで完了です。
以上の内容をやっておけば、これからは新しい環境でも手順2、3を行えばソフトの設定が自動的に同期されます。
今回はPreferences.sublime-settingsを例に説明しましたが、SublimeText2のキーバインドに関しても同期したい場合は同じディレクトリにある「Default (OSX).sublime-keymap」に関して同じ作業をすれば同期できます。
自分の場合は複数の設定ファイルを同期させていて、毎回(そんな頻繁にする作業じゃないですけど)何個もシンボリックリンクを貼るのが面倒だったのでシェルスクリプトを作って、コマンド一発で同期させたい全設定ファイルのシンボリックリンクを貼れるようにしています。
以上
設定がファイルで管理されているソフトしか使えない手法ですが、何気によく使うソフトはファイルで管理されているものが多い(自分が確認したものでは、Atom,Slate,Karabiner,Kobito等々…)ので今回の手法でかなりのソフト設定を同期出来ます。
また、自分はMacユーザなのでMacでのやり方しか説明出来ませんでしたが、Windowsでもシンボリックリンクを生成する方法があれば(調べたところmklinkコマンドで出来るっぽい)同様のやり方で出来そうですね!
以上、たにっぱでした〜。