tmuxやZsh、Vimなどの設定ファイルは、.からはじまるので総称してdotfilesと呼ばれています。 この記事ではこれをGitHubで管理、また環境構築の自動化を行なう方法について書きます。

dotfilesとは

コマンドラインベースでの開発環境を構築する際、tmuxやZsh、Vimなどをカスタマイズすることになると思います。 これらの設定ファイルは一般的にdotfilesと呼ばれます。

このセットアップを自動化すると、新しい環境でもすぐに開発環境を構築できるというメリットがあります。

また、GitHubで管理することにより変更の履歴が残り、カスタマイズの試行錯誤がしやすくなります

ディレクトリ構成

それでは、dotfilesをGitHubで管理するためのおすすめの方法について書いていきます。

まず、ディレクトリ構成は次のように配置します。 dotfilesの管理のキモとなるsetup.shについては、後から示します。

dotfiles
├── .tmux.conf
├── .vimrc
├── .zshrc
├── ...        # その他のdotfiles
└── setup.sh

setup.sh

setup.shには、次の2つの役割があります。

  • ~/dotfiles下の各ファイルのシンボリックリンクを~/下に張る
  • プラグイン管理ツール(tpmやzplugなど)がない場合はインストールする

これを行なうsetup.shは次のようになります。

~/dotfiles/setup.sh:

#!/bin/bash

DOTFILES=(.tmux.conf .vimrc .zshrc)

for file in ${DOTFILES[@]}
do
  ln -fnsv $HOME/dotfiles/$file $HOME/$file
done

if [ ! -d ~/.tmux/plugins/tpm ]; then
  git clone git@github.com:tmux-plugins/tpm.git ~/.tmux/plugins/tpm
fi

if [ ! -d ~/.zplug ]; then
  curl -sL zplug.sh/installer | zsh
fi

管理するファイルが増えた場合はDOTFILESにファイルを追加します。

実行権限をつける

setup.shは実行できなければならないので、実行権限をつけておきます。

$ chmod +x ~/dotfiles/setup.sh

GitHubにpushする

準備ができたら、GitHubにpushします。 筆者のリポジトリを以下に示しますので、参考にしてみてください。

セットアップ方法

以上で、導入の自動化に関する準備は完了です。

新たに環境を構築する際は、次のコマンドにより自動でセットアップが完了します。

$ git clone .../dotfiles.git
$ cd dotfiles
$ ./setup.sh

この手順はREADMEに書いておくとよいでしょう。

あわせてよみたい

おわりに

dotfilesを管理すると、便利なことはいうまでもありませんが、すこしずつ自分の環境をつくっていく過程が楽しいです。

まだの方は、ぜひやってみてください。