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 ã®ã¤ã³ã¹ãã¼ã«
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 ã®ã¤ã³ã¹ãã¼ã«
ï¼æåå
¥åããæç¹ã§åè£ãèªåçã«è¡¨ç¤ºãã¦ããããã©ã°ã¤ã³ã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
vimã®åºæ¬æä½
vim ã®åºæ¬æä½ãå¦ã³ã¾ãããã
ãã¥ã¼ããªã¢ã«
ã¾ããï¼æ¥æ¬èªã§ï¼ãã¥ã¼ããªã¢ã«ãèªã¿ã¾ãããã
$ export LANG="en_US.UTF-8" $ vimtutor ja
j k h l ã§ç§»åãããã¨ã
ãã¥ã¼ããªã¢ã«èªä½ã vim ã§éãã¦ãã¾ãã®ã§ã j ã k ãªã©ã§ç§»åãã¦ã¿ãã¨è¯ãã¨æãã¾ãã
vim7 ã 㨠text-object ã便å©ã§ããhttp://d.hatena.ne.jp/kajisuke/20090624/1245798471
ã¾ã¨ã
å°ã触ã£ã¦ã¿ã¾ããããè£å®ãç§»åãªã©é常ã«ä¾¿å©ãªæ©è½æºè¼ã§ãããvim & Rails ã§éçºãã¦ã¿ããã¨æãã¾ãã
便å©ãªãã©ã°ã¤ã³ãªã©ããã¾ãããæãã¦ãã ããï¼ï¼
Thanks
takeshy - matchit ãæãã¦ããã ãã¾ããããããã¨ããããã¾ãï¼