6/10/2007

vim 上面使用 ruby 的方式

最近聽到有人在問 vim 上面怎麼使用 ruby,尤其是怎麼縮排的問題,我在這邊稍微提一下怎麼用。其實 vim 的設計就是使用 configuration 來做到支援不同語言,但是撰寫 vim 設定檔其實不是一件很簡單的事情,所以才有 vim-ruby 的存在。vim-ruby 是一個 gem package,只要使用他就可以幫你簡單的做好 vim 上面對 ruby 的支援。


安裝 vim-ruby
gem i vim-ruby

安裝 vim-ruby configuration file
vim-ruby 有附一支 ruby script ,叫做 vim-ruby-install.rb,在安裝 vim-ruby gems 之後,你的路徑下面就會出現這隻 script ,請打入
vim-ruby-install.rb
幫助你自動的把相關的 Syntax ,indent config 檔案放到相關的目錄下。以下就是他會出現的選項
Possible Vim installation directories:
1) /home/wisely/.vim
2) /usr/share/vim/vimfiles
第一個是在講說,將相關 vim-ruby config 安裝在自己目錄下面,只有自己可以使用。第二個就是放在系統的 vim config 下面,不過你當時的權限要 root 才能安裝。原則上兩個都可以啦。

不能縮排的解法

本來這樣的步驟,在我 notebook 上面這樣就可以完全無誤的使用了。但是當我最近新裝另外一台機器的時候,我發現裝好 vim-ruby 之後,很奇怪的 vim 有 syntax highlight,但是卻沒有程式碼縮排。

後來我發現到,只要將我 notebook 上面的 .vimrc 放到新裝的機器上面即可做到縮排,所以
問題不在於 vim-ruby,而是沒有適當的 .vimrc
雖然用 vim 很久了,但是依舊沒有很深入的去了解怎麼去設定,真是很慚愧。不管怎麼說,我先將我的 .vimrc 放上網路,大家確認一下是否可以使用。這隻 .vimrc 陪我征戰大江南北,目前為止還不錯用。

UPDATE:

根據網友提醒,Ruby on Rails Wiki 網頁有講到只要在 .vimrc 裡面加入
set nocompatible " We're running Vim, not Vi!
syntax on " Enable syntax highlighting
filetype plugin indent on " Enable filetype-specific indenting and plugins

" Load matchit (% to bounce from do to end, etc.)
runtime! macros/matchit.vim

augroup myfiletypes
" Clear old autocmds in group
autocmd!
" autoindent with two spaces, always expand tabs
autocmd FileType ruby,eruby,yaml set ai sw=2 sts=2 et
augroup END
這些即可。

沒有留言: