Macを買い換えたとき、データを全削除した後などは、もういちど自分の開発環境を整える必要があります。
しかし、その環境設定は、ちょっと大変な作業だったりします。
そんなとき、dotfilesというものを作っておくと、とてもかんたんに開発環境を整えることができて便利です。
今回は、zshとVimの設定を例に、Macでのdotfilesの作り方を紹介します。
![](https://original-game.com/wp-content/uploads/2020/09/sad-1.jpg)
ねぇ、dotfilesってなんなの?
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
なんか便利そうどすなぁ
![](https://original-game.com/wp-content/uploads/2020/09/sad-2.jpg)
なんだかむずかしそう……
dotfilesってなぁに?
dotfilesと言われると、なんだかむずかしいツールみたいに思ってしまいがちですが、そうではありません。
まず、dotfilesは、たんなるフォルダ(ディレクトリ)です。
そのなかには、さまざまなツールの設定ファイルを入れておきます。
こういった設定ファイルは、ファイル名の最初が「.(ドット)」になっています。
「.(ドット)」ではじまるファイルをひとつにまとめるので、「dotfiles」となるわけです。
といっても、ファイルだけでなく、ドットからはじまるフォルダも、一緒に管理したりします。
このように、設定ファイルをひとつのフォルダにまとめておくことで、いろんなツールの設定を、かんたんに管理できるようになるのです。
![](https://original-game.com/wp-content/uploads/2022/02/terminal20.jpg)
![](https://original-game.com/wp-content/uploads/2020/09/normal.jpg)
しかも、環境の構築も一瞬でできるようになるんだべ
![](https://original-game.com/wp-content/uploads/2020/09/surprise-1.jpg)
すごーい!
![](https://original-game.com/wp-content/uploads/2020/09/sad-2.jpg)
うーん、いまいちよく分からないよー
![](https://original-game.com/wp-content/uploads/2020/09/normal-1.jpg)
ここで悩んでても仕方ないわね。とにかく作ってみましょ!
ドットファイルをdotfilesフォルダに移動しよう!
ではまず、ドットからはじまるファイル(ドットファイル)を、「dotfiles」フォルダに移動しましょう。
いろんなツールのドットファイルの多くは、ホームディレクトリに保存されています。
ホームディレクトリは、自分のユーザ名になっているディレクトリですね。
![](https://original-game.com/wp-content/uploads/2020/09/sad-2.jpg)
ぼくもー
![](https://original-game.com/wp-content/uploads/2020/09/surprise-1.jpg)
へぇー
![](https://original-game.com/wp-content/uploads/2022/02/terminal24.jpg)
※これは例です。ホームディレクトリにあるフォルダやファイルは、上記の例とは異なるかもしれません。
![](https://original-game.com/wp-content/uploads/2022/02/terminal23-798x540.jpg)
.sshなどの秘密の情報が入っているものは、絶対にdotfilesで管理しないようにしましょう。
間違えてGitHubなどで公開してしまうと、大変なことになってしまいます。
![](https://original-game.com/wp-content/uploads/2020/09/normal.jpg)
dotfilesで管理するものは、ちゃんと自分で選ぶ必要があるべ
そして、そこに秘密の情報が入っていないか、しっかりと確認して、管理するんだべ
あと、コマンド履歴のファイル(.zsh_historyなど)とかも、管理しない方がいいべ
![](https://original-game.com/wp-content/uploads/2020/09/sad-1.jpg)
よく分からないものは、管理しない方がよさそうね
dotfiesは、たとえば以下のようなふうにします。
dotfies/
|-- .vim/
| |-- autoload/
| | `-- xxxxx.vim
| |-- colors/
| | `-- xxxxx.vim
| `-- config/
| `-- init.vim
|-- .zsh/
| |-- init.zsh
| `-- commands.zsh
|-- .vimrc
`-- .zshrc
![](https://original-game.com/wp-content/uploads/2020/09/sad.jpg)
……ほんとはもっとたくさんあるんだべ
ただ今回は、dotfilesの作り方の基本、ということで、省略させてもらったべ
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
あらまぁ。それは管理が大変どすなぁ
![](https://original-game.com/wp-content/uploads/2020/09/sad-1.jpg)
どうすればいいの?
シンボリックリンクを作ろう!
つづいて、シンボリックリンクを作っていきます。
シンボリックリンクというのは、本当のファイルやフォルダは別の場所にあるのに、いかにもそこにあるかのように見せる仕組みのことです。
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
どないするんどすかぁ?
![](https://original-game.com/wp-content/uploads/2020/09/normal-1.jpg)
あ、ターミナルを開くのね!
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
あらまぁ。ターミナルを開いたら、なんかむずかしいメッセージが表示されました
This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier.
You can:
(q) Quit and do nothing. The function will be run again next time.
(0) Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this function being run again.
(1) Continue to the main menu.
--- Type one of the keys in parentheses ---
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
ほんまどすなぁ。ちゃんと動いてくれはりました
% ln -s dotfiles/.vimrc ~/.vimrc
(%
は入力しなくて構いません)
![](https://original-game.com/wp-content/uploads/2020/09/normal.jpg)
ln
というコマンドに、-s
というオプションをつけることで、シンボリックリンクを作ることができるんだべ
これはdotfilesフォルダにある.vimrcのシンボリックリンクを、ホームディレクトリに.vimrcという名前で作るものだべ
![](https://original-game.com/wp-content/uploads/2020/09/normal.jpg)
うむ。そういうことだべ
シンボリックリンクを作るための、シェルスクリプトファイルを作ろう!
dotfilesの中のもののシンボリックリンクをホームディレクトリに作ることで、それぞれのツールがその設定ファイルを読み込むことができるようになります。
しかし、ひとつづつシンボリックリンクを作っていては大変なので、シェルスクリプトファイルを作って、一発でできるようにします。
link.sh
#!/bin/sh
# エラーや未定義の変数に備える
set -eu
# dotfilesディレクトリの場所を、変数DOTFILES_DIRに教える
DOTFILES_DIR=$(cd $(dirname $0); pwd)
# dotfilesディレクトリに移動する
cd $DOTFILES_DIR
# .から始まるファイルやフォルダに対して繰り返す
for f in .??*; do
# シンボリックリンクを作りたくないファイルやフォルダを除外
[[ "$f" == ".git" ]] && continue
[[ "$f" == ".gitconfig" ]] && continue
[[ "$f" == ".gitignore" ]] && continue
[[ "$f" == ".DS_Store" ]] && continue
[[ "$f" =~ .swp$ ]] && continue
# シンボリックリンクを作成
ln -snfv ${DOTFILES_DIR}/$f ~
done
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
link.shはどないなふうに使うんどすかぁ?
% cd dotfiles
% sh link.sh
(%
は入力しなくて構いません)
![](https://original-game.com/wp-content/uploads/2022/02/terminal27-440x220.jpg)
![](https://original-game.com/wp-content/uploads/2020/09/normal-1.jpg)
きゃー! すてき!
![](https://original-game.com/wp-content/uploads/2020/09/surprise.jpg)
すばらしいべ!
![](https://original-game.com/wp-content/uploads/2020/09/angry-2.jpg)
なんだそれ
![](https://original-game.com/wp-content/uploads/2020/09/normal.jpg)
まぁまぁ。とにかく、これでdotfilesの完成だべ
このdotfilesだけあれば、Macを変えたときでも、link.shを実行するだけで、すぐに自分の環境に設定することができるんだべよ
今回は解説しないべけど、このdotfilesをGitHubとかにアップしておくと、とても便利になるんだべ
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
ほう。せやから秘密の情報を管理したらあかん、言うてはったんどすなぁ
まとめ
今回はdotfilesの作り方を紹介しました。
dotfilesを作っておくことで、Macを変えたときなど、すぐに自分の環境を整えることができます。
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
アンタ〜、帰らへん日々、ウチ辛抱〜
あ、シンボ〜ぅリック、リぃンクぅぅぅ〜♪
![](https://original-game.com/wp-content/uploads/2020/09/normal-2.jpg)
そういえば、グッバイキティちゃんは演歌の歌い手だったんだよね
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
そうなんどすえ
![](https://original-game.com/wp-content/uploads/2020/09/normal-1.jpg)
すごい! もっといろんな曲、聞かせてよ
![](https://original-game.com/wp-content/uploads/2020/09/surprise-2.jpg)
ぼくも聞きたい!
![](https://original-game.com/wp-content/uploads/2021/12/goodbyekitty.jpg)
ひっ、は、恥ずかしいどす〜
ウチ、そんなふうに言われてもうたら……
ウチ、もうそろそろ帰ります
ほな、グッバイならどすー
![](https://original-game.com/wp-content/uploads/2022/01/goodbyekitty_back.jpg)
とことことことこ
![](https://original-game.com/wp-content/uploads/2020/09/surprise-2.jpg)
帰っちゃった!
![](https://original-game.com/wp-content/uploads/2020/09/sad-1.jpg)
ホントに恥ずかしかったのね……
![](https://original-game.com/wp-content/uploads/2020/09/normal.jpg)
実は最近、わたすも歌を練習してるんだべ
絶対に上手くなって、グッバイキティちゃんを振り向かせてみせようと思ってるべ
![](https://original-game.com/wp-content/uploads/2020/09/normal-1.jpg)
すてき! 先生、歌ってみてよ!
![](https://original-game.com/wp-content/uploads/2020/09/sad-2.jpg)
ほんとに歌えるの?
![](https://original-game.com/wp-content/uploads/2020/09/angry.jpg)
てやんでぇ、べらぼうめだべ!
聞いて驚くなだべ!
こほん……
グッバイ、グッバイ、キティちゃん〜♪
グッバイ、グッバイ、キティちゃん〜♪
![](https://original-game.com/wp-content/uploads/2020/09/sad-2.jpg)
なんか、お別れの歌みたい
![](https://original-game.com/wp-content/uploads/2020/09/surprise.jpg)
うそだべ!
すごくいい曲作ったと思ったんだべけどなぁ