dotfilesを作成する

dotfilesとは

  • UNIX系のOSでいう設定ファイル
  • ファイル名がドットから始まるのでドットファイルズと呼ばれてます

dotfilesを作成するとなにがいいの

  • 各設定ファイルをバージョン管理することができます
  • macOSをクリーンインストール後の設定作業から開放されます
  • スクリプトを作って環境自体も自動構築すればより簡単に再現ができます
    • 今回はそこまでやっていません

dotfilesってどんなもの

  • 以下が今回作成したdotfilesです
    • 設定してきた以下3つを含めるようにしています
      • shell
      • tmux
      • vim
    • vimだけディレクトリ複雑になってませんか?
~/dotfiles
.
├── shell
│   ├── bash
│   ├── fish
│   │   └── config.fish
│   └── zsh
├── tmux
│   ├── mystatusline.json
│   └── session
└── vim
    └── conf.d
        ├── bases
        │   ├── basic.vim
        │   ├── dein.vim
        │   ├── editor.vim
        │   ├── file.vim
        │   ├── keybind.vim
        │   ├── powerline.vim
        │   └── search.vim
        ├── languages
        └── plugins

dotfilesの作り方

  • 以下コマンドでディレクトリを作成します
mkdir ~/dotfiles
  • あとは使いやすいように配置すれば完成です

  • 以下は僕のおすすめの配置です

~/dotfiles
├── ツール名
│   ├── 設定ファイルの種類
│   ├── 設定ファイルの種類
└── ツール名
    ├── 設定ファイルの種類
    └── 設定ファイルの種類

dotfilesはどう使えばいいの

  • 各設定ファイルを読み込まれるパスにシンボリックリンクを設置するだけです

シンボリックリンクってなに

  • Windowsでいうところのショートカットのようなものです
    • シンボリックリンクファイルは対象ファイルまでのパス情報を含んだファイルです
    • シンボリックリンクファイルを編集すると実ファイルが更新されます
    • シンボリックリンクファイルを削除しても参照先へ影響はありません

シンボリックリンクを作成する

  • .vimrcのシンボリックリンクの作成
ln -s ~/dotfiles/vim/.vimrc ~/
  • cond.d(vim)のシンボリックリンクの作成
ln -s ~/dotfiles/vim/conf.d ~/.vim
  • config.fishのシンボリックリンクの作成
ln -s ~/dotfiles/shell/fish/config.fish ~/.cofig/fish
  • .tmux.confのシンボリックリンクの作成
ln -s ~/dotfiles/tmux/.tmux.conf ~/

シンボリックリンクを解除したい場合

  • .vimrcのシンボリックリンクを解除する
unlink ~/.vimrc
  • conf.d(vim)のシンボリックリンクを解除する
unlink ~/.vim/conf.d
  • .tmux.confのシンボリックリンクを解除する
unlink ~/.tmux.conf
  • config.fishのシンボリックリンクを解除する
unlink ~/.cofig/fish/config.fish

最後に

  • dotfilesを作成することでバラバラだった設定ファイルが1つになります
  • またバージョン管理の恩恵にも授かれるので是非やってみてください