ドットファイルをGitHubで管理する
最近知ったのですが,.vimrc
や.bashrc
等のファイルのことをドットファイルというようです。
これらをGitHubで管理することでどのマシンでも同じ設定がすぐに使える!っていうのが流行っているらしいなので、早速取り入れてみる。
まずはGitHubのページから「Create new Repository」を選択。「dotfiles」という名前のリポジトリを作成。
この時,README.md
等を作成するのところにチェックを入れると後でpushするときに面倒くさくなるので,リポジトリ名だけを指定してリポジトリ作成。
それが終わったら次はローカルにdotfilesディレクトリを作成して,GitHubで管理したいファイルを移動する。
$ cd $ mkdir dotfiles $ mv .vimrc dotfiles $ mv .gvimrc dotfiles $ mv .bashrc dotfiles $ mv .bash_profile dotfiles $ mv .vim dotfiles $ mv .gitconfig dotfiles $ mv .gitconfig_global dotfiles
次はシンボリックリンクの作成。シンボリックリンクは、違う環境にdotfilesの設定をしたいときにも必要なので、シェルスクリプトで半自動化する。dotfilesディレクトリ内にdotfilesLink.sh
というファイルを作成.
#! /bin/bash ln -s ~/dotfiles/.vimrc ~/.vimrc ln -s ~/dotfiles/.gvimrc ~/.gvimrc ln -s ~/dotfiles/.bashrc ~/.bashrc ln -s ~/dotfiles/.bash_profile ~/.bash_profile ln -s ~/dotfiles/.vim ~/.vim ln -s ~/dotfiles/.gitconfig ~/.gitconfig ln -s ~/dotfiles/.gitignore_global ~/.gitignore_global
↑のように書き込んだら、chmodコマンドで実行属性をつけて実行する.
$ chmod +x dotfilesLink.sh $ ./dotfilesLink.sh
次はいよいよGitHubにpushする。
$ cd dotfiles $ git init $ git add . $ git commit -m "initial commit" $ git remote add origin git@github.com:mejiro/dotfiles.git $ git push -u origin master
完了!
Vimのプラグイン管理にNeoBundleを導入
Vimのプラグイン管理には,評判の良いNeoBundleを導入する。
dotfilesとしてGitHubで管理しているため、git clone
ではなくgit add submodule
で追加する。
dotfilesディレクトリ上で↓のコマンドを実行
$ git submodule add https://github.com/Shougo/neobundle.vim .vim/bundle/neobundle.vim Cloning into '.vim/bundle/neobundle.vim'... remote: Reusing existing pack: 5590, done. remote: Counting objects: 40, done. remote: Compressing objects: 100% (27/27), done. remote: Total 5630 (delta 18), reused 34 (delta 12) Receiving objects: 100% (5630/5630), 1.37 MiB | 275.00 KiB/s, done. Resolving deltas: 100% (2180/2180), done. Checking connectivity... done
NeoBundleの設定
まずは.vimrcに↓のように追記していく.詳しく書き方を知りたい方はこちらのスライドが分かりやすかったので見てみるといいと思う。
set nocompatible filetype plugin indent off if has('vim_starting') set runtimepath+=~/dotfiles/.vim/bundle/neobundle.vim/ call neobundle#rc(expand('~/dotfiles/.vim/bundle/')) endif call neobundle#begin(expand('~/dotfiles/.vim/bundle/')) " Let NeoBundle manage NeoBundle NeoBundleFetch 'Shougo/neobundle.vim' " My Bundles here: NeoBundle 'Shougo/unite.vim' NeoBundle 'Shougo/vimproc' NeoBundle 'The-NERD-tree' NeoBundle 'The-NERD-Commenter' NeoBundle 'Gist.vim' call neobundle#end() filetype plugin indent on
2014/4/17 追記 : 以前NeoBundle 'Shougo/neobundle.vim'
と記述していたのですが、どうやらNeobundle自身をNeobundleで管理する場合はNeoBundleFetch
というものを使うそうです(参考記事)。参考にしてくださった方申し訳ございませんでした...
この後vim上で,↓を実行すれば適用される。
:NeoBundleInstall
ちなみにアップデートするには
:NeoBundleUpdate
不要になったプラグインを削除するには、
:NeoBundleの設定を.vimrcから削除した後、↓のコマンドを実行
:NeoBundleClean
追記
こちらによると,vimrcにNeoBundleCheck
と記述するだけでVim起動時に未インストールのbundleがないかどうかをチェックしてくれるようです。便利!
動作確認
念のためNeoBundleでインストールしたプラグインがちゃんと動くか動作チェック.
前から気になっていたNERD-treeを使ってみる。 こちらを参考に.gvimrcに↓を追記。
"隠しファイルを表示する。 let NERDTreeShowHidden = 1 "引数なしで実行したとき、NERDTreeを実行する let file_name = expand("%:p") if has('vim_starting') && file_name == "" autocmd VimEnter * execute 'NERDTree ./' endif
MacVimを起動すると...
成功!
起動はコマンドモードで
:NERDTree
NERDTreeでのコマンド
o : ディレクトリを開く or ファイルを開く
O : 再帰的にディレクトリを開く
s : 縦に開く
m : メニューを開く
unite.vim
↓のページにかなり綺麗にまとまってました.
dotfiles参考ページ
neobundle参考ページ
Vim参考ページ
- 作者: DrewNeil,新丈径
- 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
- 発売日: 2014/01/28
- メディア: Kindle版
- この商品を含むブログ (2件) を見る