Deep Dive

IT系ダイバーのログ

dotfilesを整理する

今まで必要に迫られなかったため、サボリにサボっていたdotfilesの整理をやっていく。 自分が使っているものの中で、とりあえず対応しておくべきはfishのconfigとvimrcの整理だと思うのでこれらに手をつけていく。

どうせやるなら、ということでこの辺りを参考にして最速で最低限の環境構築ができるような状態にする。

dotfilesリポジトリの作成

まずはリポジトリを作った。(正確にはだいぶ前に作っていた)

github.com

motemen/ghqでrootを $GOPATH/src に設定してリポジトリを管理しているので、以下コマンドでcloneする。

$ ghq get sunmyinf/dotfiles $ ls ~/go/src/github.com/sunmyinf/ dotfiles

.vimrcの移行

そしてローカルにある .vimrc をdotfilesに移行する。

今使っているVimプラグインマネージャはNeoBundleなのだが、その設定で絶対パスを指定していたところがあったので、それを相対パスに直す。

set runtimepath+=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle'))

また、調べている途中でNeoBundleのメンテ停まってるという情報を見つけて、 dein あたりがよさそうなので追々乗り換える。

(.vimrcも全然メンテしていないことが伺える。。。)

fishのconfigの移行

さて、fishのconfigも移行していこう、と思ったが今回はやめておく。

利用している外部サービスのidやpass等の環境変数が直に置かれていて、誤ってリモートpushするのが怖いので頭が冴えている時にやる。

最速?で環境構築できるようにする

参考記事の方のようにone linerで構築できるまでやり込みたいが、今回はそこまでしない。Makefileを置き、必要なdotfilesを1コマンドで適切なディレクトリに配置できるようにする。

配置するときは、dotfilesの変更が随時反映されることを目的としてシンボリックリンクを張るようにする。

Makefileで使える関数やsyntaxは↓にまとまっているので、紹介されているものを見て理解しながら書く。

www.gnu.org

先ほどdotfilesに追加した .vimrc がローカルのHOMEディレクトリ直下に配置されるコマンドを作った。(参考Qiitaをほとんど模倣した形だけど、関数の理解はできた)

DOTFILES_EXCLUDES := .DS_Store .git
DOTFILES_TARGET := $(wildcard .??*)
DOTFILES_DIR := $(PWD)
DOTFILES_FILES := $(filter-out $(DOTFILES_EXCLUDES), $(DOTFILES_TARGET))

deploy:
    @$(foreach file, $(DOTFILES_FILES), ln -sfnv $(abspath $(file)) $(HOME)/$(file);)

シンボリックリンクを途中で色々調べていたら、このQiitaが参考になったので貼っておく。

qiita.com

続きはまた今度。