dotfiles^~~~~

2020-05-19

どっどっどっっどっどっdとふぁいる~~~~♪♪

注:この記事ではgit及びGitHubの導入方法は説明しません

突然ですが,GitHubで「dotfiles」という名前のリポジトリを作ってる人を何人か見かけたことはありませんか?
簡潔に言うと,dotfilesをGitHubと連携することで,複数の環境で簡単に同じvimやbashの設定を使えるのじゃ
今回はそのdotfilesについて,導入方法を説明したいと思いますわ.

どっとふぁいるってな~に~?

dotfilesとは,簡単に言うと名前がドット「.」から始まるファイルのこと
基本的にホームディレクトリ直下にある
例えば.vimrc,.bashrc,ディレクトリもあるよ
Windowsにもユーザのホームドライブ直下に名前がドットから始まるフォルダがいっぱいあるね

一応ここに私のdotfilesリポジトリへのリンクを置いときますね
もし困ったとき役に立つかもしれないので

dotfilesの設定

では早速dotfilesを使えるようにしていきましょう
なお,この記事ではターミナル上で実行するコマンドは,行の先頭に$をつけて記しています

ディレクトリをつくる

まずはdotfilesをひとつのディレクトリにまとめる

$ cd
$ mkdir dotfiles
$ mv .bashrc dotfiles
$ mv .vimrc dotfiles
$ mv .vim dotfiles

全部まとめて移動させたいなら$ mv .* dotfilesでできるけど,あまりおすすめしないです
だって…その設定ファイル,本当に全部どの環境でも使うんですか?ってね
いくつかに絞っておくのがきっと未来の自分のためにもなるでしょう

シンボリックリンクを用意する

次はシンボリックリンクをつくります
dotfilesはホームディレクトリ直下に置いとかないと,そもそもその設定ファイルを見てもらえなくなるんじゃ...

新たに別の環境にdotfilesの設定を適用するたびにこれらを打つのは面倒なので,シェルスクリプト書いて半自動化しますっ
シェルスクリプトの名前は別になんでもいいですが,ここではdotfilesLink.shとしときます
dotfilesディレクトリに入ってvimなどでdotfilesLink.shを開く

$ cd ~/dotfiles
$ vim dotfilesLink.sh

そして以下のようにファイルに記述します

#! /bin/bash
ln -s ~/dotfiles/.bashrc ~/.bashrc
ln -s ~/dotfiles/.vimrc ~/.vimrc
ln -s ~/dotfiles/.vim ~/.vim

一行目の#! /bin/bashは任意(推奨)です.私は書かずに使ってますがネ

lnはリンクをつくるコマンドです.第一引数がリンク先の実体,第二引数がリンク元の置き場所
-sはシンボリックリンクとしてファイルのリンクを作成することを指定するオプションです
シンボリックリンクとはまあよくある普通のリンクです(詳しく知りたい人は「シンボリックリンク ハードリンク 違い」などで調べてみてね)

書き終わったら保存して次は実行権限をつけて実行する余
シェルスクリプトを作ったら実行権限つけるのはテンプレ(そうしないと大体エラー吐く)(多分)

$ chmod +x dotfilesLink.sh
$ ./dotfilesLink.sh

chmodはそのファイルやディレクトリへのアクセス権限を変えるコマンド
ほかのユーザに見られちゃ困るファイルみんなあるもんね

+xは「すべてのユーザに対象の実行権限を与える」という意味
xは実行,rは読み込み,wは書き込み権限を示していて,
uは自分自身,gは自分と同じグループ,oはその他を示します
今回
ugoも指定されていないので,全員を対象にすることになります

これは3桁の数字で示されることもありますが,こっちが絶対わかりやすいでしょ

GitHubへpush

したらあとはGitHubにpushするだけじゃい!
リモートリポジトリつくってからね

$ cd ~/dotfiles
$ git init
$ git add .
$ git commit -m ":tada: Initial commit"
$ git remote add origin [email protected]:ユーザ名/dotfiles.git
$ git push -u origin master

ターンエンド


実際に別の環境でこのdotfilesを使うときはGitHubからリポジトリ持ってきて
リンク作成用のシェルスクリプトを実行するだけにゃ!

参考リンク

今回やったののついでにvimプラグインをNeoBundleで管理してvimを一回り強くしたい人にはこの記事がおすすめ

vimをつよつよにしたい人にはこちら

vimって極めればvscode並のIDEになるんじゃないの? - Qiita

スポンサーリンク