Git
Ubuntu
vimrc
dotfiles

dotfiles(設定ファイル)をまとめよう!!

dotfiles(設定ファイル)とは

ホームディレクトリにある
.から始まるファイルのことである
.vimrcとか.gitconfigsなどである
それらのファイルをgithubにて管理をするというのが今回のお話なのである

今回の事前事項

  • git(github)
    前回説明した通り
  • .gitnore
    gitにpushするときに範囲外にするものを書き並べたもの

dotfilesのバックアップを取ろう

まずは前回と同じようにgithubでdotfilesという名前のレポジトリを作ってください

$ git clone [作成したレポジトリ]

そしたらdotfilesというファイルができます
その中に保存するファイルを入れておきます

cd ~/
mv .vimrc dotfiles
mv .gitconfigs dotfiles

そしたらまたvimが.vimrc参照しなくなるので~/に移動させた.vimrcのシンボリックリンクを置きます
そのため以下のようなファイルを作ります
~/dotfiles/dots.sh

dots.sh
#!/bin/bash

set -u
cd ~/dotfiles
# 実行場所のディレクトリを取得
THIS_DIR=$(cd $(dirname $0); pwd)

cd $THIS_DIR
git submodule init
git submodule update

echo "start setup..."
for f in .??*; do
    [ "$f" = ".git" ] && continue
    [ "$f" = ".gitconfig.local.template" ] && continue
    [ "$f" = ".require_oh-my-zsh" ] && continue
    [ "$f" = ".gitmodules" ] && continue

    ln -snfv ~/dotfiles/"$f" ~/
done

[ -e ~/.gitconfig.local ] || cp ~/dotfiles/.gitconfig.local.template ~/.gitconfig.local

cat << END

**************************************************
DOTFILES SETUP FINISHED! bye.
**************************************************

END

その後dotfilesないでsh dots.shで起動させたら自動的にリンクを貼ってくれます
ではこの状態でgitにpushしておきましょう

git add -A
git commit -m".vimrcなどを追加またシンボリックリンク作成用のシェルスクリプトをついか"
git push origin master

また.vimなどもまとめてみる

$ cd ~/
$ rm -rf .vim
$ cd ~/dotfiles
$ git clone [自分の.vimのレポジトリ]

.vimrcの中身も書き換える

.vimrc
set encoding=utf-8
scriptencoding utf-8
set runtimepath+=~/dotfiles/.vim
runtime! configs/users/*.vim
runtime! configs/plugins/*.vim

pluginのインストール場所も変更するためにplugins.vimも書き換える

plugins.vim
"プラグインが実際にインストールされるディレクトリ                                                                                                                               
let s:dein_dir = expand('~/dotfiles/.vim/dein')
" dein.vim 本体
let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'

" dein.vim がなければ github から落としてくる
if &runtimepath !~# '/dein.vim'
 if !isdirectory(s:dein_repo_dir)
  execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
 endif
 execute 'set runtimepath^=' . s:dein_repo_dir
endif

" 設定開始
if dein#load_state(s:dein_dir)
 call dein#begin(s:dein_dir)

 " プラグインリストを収めた TOML ファイル
 " ~/.vim/rc/dein.toml,deinlazy.tomlを用意する
 let g:rc_dir    = expand('~/dotfiles/.vim/configs/plugins/install')
 let s:toml      = g:rc_dir . '/dein.toml'
 let s:lazy_toml = g:rc_dir . '/dein_lazy.toml'

 " TOML を読み込み、キャッシュしておく
 call dein#load_toml(s:toml,      {'lazy': 0})
 call dein#load_toml(s:lazy_toml, {'lazy': 1})

 " 設定終了
 call dein#end()
 call dein#save_state()
endif

" もし、未インストールものものがあったらインストール
if dein#check_install()
 call dein#install()
endif

filetype plugin indent on

最後に起動用スクリプトを書いておく

install.sh
cd ~/dotfiles
git clone [自分の.vimのレポジトリ]
sh dots.sh

一応自分用の設定ファイルです
.vim
初期設定
dotfiles