vimをちまちま使いはじめて3ヶ月。ちょっと整理してみるよ
今年からjavaでお仕事をすることがなくなり、IDE(eclipse)からvimに乗り換えました。
ここんところ、vimrcの設定値やpluginの管理などが煩雑になってきたので自分ルールを決めて
快適なvimライフを送りたいと思います。
1.今回の作業の目的
- 自宅, 会社、PC移行時など同じ環境を作りたい、同期させたい
- Plugin管理の煩雑さを解消
- 設定値の整理(ファイル細分化とか)
- 会社でvimを広める際に僕の環境を簡単にコピーさせる
ヒントになったやりとりがコレ↓
@tazyamah ありがとう!
3.オールインワンパッケージの解凍
vim73-aio.zipをCとかDドライブ直下に解凍する
pluginを足す際は$VIMRUNTIME/pluginとかに配置するものなのだけど、
この方法だとplugin等の管理が大変になるのでVIMランタイムは解凍後は一切触らないようにします。
また、アップデートの際は新しいパッケージを解凍してそのまま上書きしてやれば大丈夫です。
4._vimrc,_gvimrc
オールインワンパッケージを展開するとsample_vimrc, sample_gvimrcというファイルがあります。
これをプロファイルディレクトリへ移動してリネームします。(Windows7の場合はC:\User\
_sample_vimrc → _vimrc
_sample_gvimrc → _gvimrc
_(アンダースコア)つきvimrcはUnixでいうところの.vimrcです。Windowsの場合は_(アンダースコア)つきのvimrcがユーザ固有のvim設定となります。
設定値に関してまだそこまで詳しくはないので基本はsampleをそのまま使っていきます。
5.日本語入力固定モード
ものすごく煩わしい日本語入力時の対応。僕の場合、IMEをONにしておいて、
(ESCとIMEをよくミスタッチしてしまうので)
im_control.vimをダウンロードして
ユーザープロファイルディレクトリの.vim/pluginにおきます。(VIMRUNTIME上には置かない)
_gvimrcに
source ~/.vim/_gvimrc_im
で、.vim以下に_gvimrc_imを作って
"---------------------------------------- " 日本語入力固定モード "---------------------------------------- source ~/.vim/plugin/im_control.vim " 「日本語入力固定モード」の動作モード let IM_CtrlMode = 4 " 「日本語入力固定モード」切替キー inoremap=IMState('FixMode') " 「日本語入力固定モード」のバッファローカルモード let b:IM_CtrlBufLocal = 1
でOK。(im_control.vimはconsoleでは使えないのであくまでもgvim用のファイルに書きます)
参考元はこちら
6.plugin管理
最初はvundleで管理しようと思ったんだけど、
@tazyamah「時代はNeoBundleですよ」
ということらしいので、plugin管理にはneobundleを使うよ!
install、使用方法はこちら
_vimrcの整理がてら僕の環境は以下のようになりました。
まずはgitでneobundle.vimをclone
$ mkdir -p ~/.vim/bundle $ git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
その後、_vimrcに
source ~/.vim/_vimrc_neobundle
で、~/.vim/_vimrc_neobundleに
set nocompatible filetype off if has('vim_starting') set runtimepath+=~/.vim/bundle/neobundle.vim call neobundle#rc(expand('~/.vim/bundle')) endif " このへんは必須です! " let NeoBundle manage NeoBundle " required! "NeoBundle 'Shougo/neobundle.vim' " recommended to install NeoBundle 'Shougo/vimproc' " after install, turn shell ~/.vim/bundle/vimproc, (n,g)make -f your_machines_makefile NeoBundle 'Shougo/vimshell' NeoBundle 'Shougo/unite.vim' " ここから自分で使うplugin " とりあえずいつもいれるzen-codingを NeoBundle 'git://github.com/mattn/zencoding-vim.git' filetype plugin on filetype indent on
したらばvimを起動してコマンドモードで
:NeoBundleInstall
その後、vimを起動しなおしーの挿入モードで
html:4s
を入力して
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title></title> </head> <body> </body> </html>
出た!!!
やばい。bundle気持ちよすぎ
7.整理
ここまでの構成をまとめると、ユーザプロファイルディレクトリ以下の状態はこうなった
https://github.com/ya-sasaki/windows-vim
プロファイルディレクトリ ├─.vim " ユーザランタイムディレクトリ │ ├─bundle " bundle管理フォルダ │ ├─plugin " bundle管理外のplugin │ | └im_control.vim " 日本語固定入力用 │ ├_gvimrc_basic " gvim基本 │ ├_gvimrc_im " IM設定 │ ├_vimrc_basic " gvim,vim基本 │ └_vimrc_neobundle " neobundle設定 ├_gvimrc " gvim用ユーザ設定 └_vimrc " gvim,vim用共通ユーザ設定
8.環境構築 from git
ここまで作った環境は一旦ご破算して、オールインワンパッケージが既にある前提で環境構築してみる。
一旦任意のディレクトリにgit://github.com/ya-sasaki/windows-vim.gitをcloneする
$ mkdir work $ cd work $ git clone git://github.com/ya-sasaki/windows-vim.git
clone後は、windows-vim下の.vimフォルダ、_vimrc、_gvimrcをユーザプロファイルディレクトリへコピペ
neobunleがまだ入っていないのでcloneする
$ mkdir -p ~/.vim/bundle $ git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
終わったらvimを起動して:NeoBundleInstall
わぁーい簡単簡単