vim で Rails開発環境構築 for Linux
Rails開発を vim でやることに決めたものの、経験がないので歴史から学びました。
なお、環境は以下です。
OS
$ cat /etc/redhat-release CentOS release 5 (Final)
Vim version 7.0.243
目次
vimのインストール
既存インストールの確認
まず、既にインストールされているかどうか確認しましょう。
vim -v
$ rpm -qa | grep vim vim-common-7.0.109-3.el5.3 vim-minimal-7.0.109-3.el5.3 vim-enhanced-7.0.109-3.el5.3
上記が表示され、vim version 7.0.237 がインストールされていることが分かりました。
インストール方法も知りたいので、7.0.237 をアンインストールして現在の7.0系最新である 7.0.243 をインストールしましょう。
7.0.237のアンインストール
$ sudo rpm -e vim-enhanced-7.0.109-3.el5.3 $ sudo rpm -e vim-common-7.0.109-3.el5.3 $ sudo rpm -e vim-minimal-7.0.109-3.el5.3 error: Failed dependencies: vim-minimal is needed by (installed) sudo-1.6.8p12-10.i386
vim-minimal は sudo が必要ということでアンインストールできなかった・・。が、vim は消えた。
$ vim --version
-bash: /usr/bin/vim: No such file or directory
7.0.243 のインストール
su - admin cd ~/src wget ftp://ftp.vim.org/pub/vim/unix/vim-7.0.tar.bz2 wget ftp://ftp.vim.org/pub/vim/extra/vim-7.0-extra.tar.gz wget ftp://ftp.vim.org/pub/vim/extra/vim-7.0-lang.tar.gz tar xjvf vim-7.0.tar.bz2 tar xzvf vim-7.0-extra.tar.gz tar xzvf vim-7.0-lang.tar.gz cd vim70 mkdir patches cd patches wget ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.001-100.gz wget ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.101-200.gz curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.[201-243]' gunzip 7.0.001-100.gz gunzip 7.0.101-200.gz cd .. cat patches/7.0.* | patch -p0 ./configure --enable-multibyte --enable-xim --enable-fontset --without-x --enable-rubyinterp --with-features=big make sudo paco -D make install
これで vim はインストールできました。
その他Rails開発で便利なもの
vim-ruby のインストール
$sudo gem install vim-ruby
sudo vim-ruby-install.rb
確認
$ gem list | grep vim-ruby vim-ruby (2007.05.07) Ruby configuration files for Vim. Run 'vim-ruby-install.rb' to
これで、インストール完了。
rails.vim のインストール
vim での rails 開発にかかせません。 version 3.4 を入れました。
su - admin cd ~/src wget http://www.vim.org/scripts/download_script.php?src_id=10297 unzip rails.zip cp -pr plugin doc autoload ~/.vim
rails.vimの使い方は下記のページに詳しく載っています。感謝です。
http://fg-180.katamayu.net/archives/2006/09/02/125150
rails.vim まとめ - 2nd life
autocomplpop.vim のインストール
2文字入力した時点で候補を自動的に表示してくれるプラグイン。version 1.6 を入れました。
version 1.6.1 以上は vim for 7.1 です。
su - admin cd ~/src wget http://www.vim.org/scripts/download_script.php?src_id=9335 cp autocomplpop.vim ~/.vim/plugin/
- ※環境によっては、autocomplpop.vim が download_script.php?src_id=9335 というファイル名でダウンロードされます。mv download_script.php?src_id=9335 autocomplpop.vim として名前を変更してください。
Project.vim のインストール
version 1.4.1 を入れました。
su - admin cd ~/src wget http://www.vim.org/scripts/download_script.php?src_id=6273 tar zxvf project-1.4.1.tar.gz cp plugin/project.vim ~/.vim/plugin/ cp doc/project.txt ~/.vim/doc/
参考
http://d.hatena.ne.jp/Riverman/20090217/1234884855
プロジェクトのディレクトリツリーを表示してくれるプラグイン。
rails.vimが導入済であれば、「:Rproject」で現在開いているRailsプロジェクトをツリーに追加してくれる。
- ※環境によっては、autocomplpop.vim が download_script.php?src_id=6273 というファイル名でダウンロードされます。tar zxvf download_script.php?src_id=6273 で解凍できます。
SuperTab.vim のインストール
version 0.4 を入れました。
su - admin cd ~/src wget http://www.vim.org/scripts/download_script.php?src_id=5699 cp supertab.vim ~/.vim/plugin/
参考
http://d.hatena.ne.jp/Riverman/20090217/1234884855
Tabキーで単語を補完してくれる様になるプラグイン。
refe.vim のインストール
vimでRubyリファレンスを引けるようにする。詳しくはhttp://rails2u.com/projects/refe.vim/をご覧ください。
まず ReFe をインストールします。
gem install refe
つぎに、refe.vim をインストールします。
wget http://rails2u.com/projects/refe.vim/refe.vba vim -c 'so %' refe.vba
これで、~/.vim/ に配置されるのですが、私の場合ファイル名が
~/.vim/plugin/prefe.vim\ \[\[\[1 ~/.vim/doc/refe.txt\ \[\[\[1
となっていたので、以下のように修正しました。
mv ~/.vim/plugin/refe.vim\ \[\[\[1 ~/.vim/refe.vim mv ~/.vim/doc/refe.txt\ \[\[\[1 ~/.vim/refe.txt
さらにリファレンスをインクリメンタルサーチする為に lookupfile.vim(v 1.4) と genutils.vim(v 2.4) をインストールします。
wget http://www.vim.org/scripts/download_script.php?src_id=6124 unzip lookupfile-1.4.zip cp plugin/lookupfile.vim ~/.vim/plugin/ cp doc/lookupfile.txt ~/.vim/doc/ cp autoload/lookupfile.vim ~/.vim/autoload/ wget http://www.vim.org/scripts/download_script.php?src_id=7231 unzip genutils-2.4.zip cp plugin/genutils.vim ~/.vim/plugin/ cp autoload/genutils.vim ~/.vim/autoload/
- ※最初、lookupfile.vim の1.8を入れたらvim7.1からの対応とのことでしたので1.4をインストールしました。
- ※環境によっては、lookupfile-1.4.zip が download_script.php?src_id=6124 というファイル名でダウンロードされます。unzip download_script.php?src_id=6124 で解凍出きます。
これで、:Refe で vim から Rubyのリファレンスが見れるようになります。
参考URL
http://rails2u.com/projects/refe.vim/
http://www.ruby-lang.org/ja/man/html/ReFe.html
http://www.vim.org/scripts/script.php?script_id=1581
http://d.hatena.ne.jp/guyon/20071030
http://www.vim.org/scripts/script.php?script_id=197
.vimrcの設定(vimの設定ファイル)
vim、vim-ruby、rails.vim、autocomplpop.vim をインストールして ~/.vimrc を次のように設定しました。文字コードは UTF-8、改行コードは LF で保存しました。
http://www15.ocn.ne.jp/~tusr/vim/options_help.html
help - Vim日本語ドキュメント
http://www.crimson-snow.net/tips/unix/vim.html
上記に非常に詳しく解説されています。
.vimrcはgithubにもあります。
" 文字コードの設定 " fileencodingsの設定ではencodingの値を一番最後に記述する " デフォルトの文字コード set encoding=euc-jp set termencoding=euc-jp set fileencoding=euc-jp " ファイルを開く際のエンコーディングの候補を指定 set fileencodings=ucs-bom,euc-jp,cp932,iso-2022-jp set fileencodings+=,ucs-2le,ucs-2,utf-8 " 検索文字をハイライト set hlsearch " 大文字小文字無視 set ignorecase " 大文字ではじめたら大文字小文字無視しない set smartcase " <status line> " 常にステータスラインを表示 set laststatus=2 set statusline=%<%F\ %r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).'\|'.&ff.']'}\ \ %l/%L\ (%P)%m%=%{strftime(\"%Y/%m/%d\ %H:%M\")} " ファイル内の <Tab> が対応する空白の数。 set tabstop=2 " 自動インデントの各段階に使われる空白の数。 set shiftwidth=2 " Insertモードで: <Tab> を挿入するのに、適切な数の空白を使う。(タブをスペースに展開する) set expandtab " 新しい行を開始したときに、新しい行のインデントを現在行と同じ量にする。 set autoindent " compatible の機能をオフにします。compatible のオプションを有効にすると、Vimの便利な機能が使えなくなる。 初期値:オン set nocompatible " 強調表示(色付け)のON/OFF設定。 syntax on " 行数表示 set nu " バッファを切替えてもundoの効力を失わない set hidden " コマンドライン補完を拡張モードにする set wildmenu set wildmode=list:longest,full " ファイル形式の検出を有効化 filetype on " ファイル形式別インデントのロードを有効化 filetype indent on " ファイル形式別プラグインのロードを有効化 filetype plugin on " rails.vim 参考 http://fg-180.katamayu.net/archives/2006/09/02/125150 "" ロードされる特徴のレベルの一般的なコントロール 4 は(すべての普通の特徴を有効にする。推奨) let g:rails_level=4 "" 新しいRailsアプリケーションが作られたときロードするファイル。 let g:rails_default_file="app/controllers/application.rb" "" 新しいアプリケーションで使うデータベース。 let g:rails_default_database="mysql" " rubycomplete.vim "" FileType settings autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1 autocmd FileType ruby,eruby let g:rubycomplete_rails = 1 autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1 autocmd FileType html set filetype=xhtml autocmd Filetype html set omnifunc=htmlcomplete#CompleteTags autocmd Filetype css set omnifunc=csscomplete#CompleteCSS autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS " autocomplpop.vim let g:AutoComplPop_CompleteOption = '.,w,b,k' let g:AutoComplPop_IgnoreCaseOption = 1 autocmd FileType * let g:AutoComplPop_CompleteOption = '.,w,b,u,t,i' autocmd FileType perl let g:AutoComplPop_CompleteOption = '.,w,b,u,t,k~/.vim/dict/perl.dict' autocmd FileType ruby let g:AutoComplPop_CompleteOption = '.,w,b,u,t,i,k~/.vim/dict/ruby.dict' autocmd FileType html let g:AutoComplPop_CompleteOption = '.,w,b,u,t,i,k~/.vim/dict/javascript.dict' autocmd FileType javascript let g:AutoComplPop_CompleteOption = '.,w,b,u,t,i,k~/.vim/dict/javascript.dict' autocmd FileType erlang let g:AutoComplPop_CompleteOption = '.,w,b,u,t,i,k~/.vim/dict/erlang.dict' "<TAB>で補完(autocomplpop.vim) " {{{ Autocompletion using the TAB key " This function determines, wether we are on the start of the line text (then " tab indents) or " if we want to try autocompletion function! InsertTabWrapper() let col = col('.') - 1 if !col || getline('.')[col - 1] !~ '\k' return "\<TAB>" else if pumvisible() return "\<C-N>" else return "\<C-N>\<C-P>" end endif endfunction " " Remap the tab key to select action with InsertTabWrapper inoremap <tab> <c-r>=InsertTabWrapper()<cr> " " }}} Autocompletion using the TAB key " ポップアップの配色 hi Pmenu guibg=#666666 hi PmenuSel guibg=#8cd0d3 guifg=#666666 hi PmenuSbar guibg=#333333 "カーソル行の強調表示 set cursorline " matchit の設定 :source $VIMRUNTIME/macros/matchit.vim
Thanks
takeshy - matchit を教えていただきました。ありがとうございます!