使用vim做rails开发,推荐这个 https://github.com/carlhuda/janus
1. vim下的Rails常用插件
首先列出我比较常用的vim插件,基本都是网上提到的哪些。必备的有:
NERDTree.vim:显示目录树和标签(特别有用)
Rails.vim:这个不说了,Rails开发必备
Snipmate.vim:代码片段自动完成,Rails开发神器之一
FuzzyFinder.vim:模糊查找,使用频率最高的插件之一
TabBar:BufferExpoloer的增强版,用来标识打开的文件的
Supertab.vim:文本自动完成
Rubytest.vim:vim下的集成测试工具
下面是完整的列表
total 320
drwxr - xr - x 2 paul paul 4096 2011 - 07 - 26 12 : 20 .
drwxr - xr - x 11 paul paul 4096 2011 - 07 - 25 12 : 04 ..
- rw - r ----- 1 paul paul 8767 2011 - 07 - 23 23 : 44 autoclose . vim
- rw - r -- r -- 1 paul paul 7920 2010 - 01 - 20 23 : 59 color_sample_pack . vim
- rw - r -- r -- 1 paul paul 8758 2010 - 09 - 28 23 : 55 fuf . vim
- rw - r -- r -- 1 paul paul 3139 2010 - 09 - 28 23 : 55 l9 . vim
- rw - r -- r -- 1 paul paul 128014 2009 - 12 - 01 17 : 20 NERD_tree . vim
- rw - r -- r -- 1 paul paul 13606 2010 - 08 - 11 02 : 23 rails . vim
- rw - r -- r -- 1 paul paul 7984 2011 - 06 - 17 16 : 40 rubytest . vim
- rw - r ----- 1 paul paul 13579 2011 - 07 - 24 01 : 30 ScrollColor . vim
- rw - r -- r -- 1 paul paul 7442 2009 - 07 - 13 23 : 22 snipMate . vim
- rw - r -- r -- 1 paul paul 23978 2011 - 07 - 25 12 : 04 supertab . vim
- rw - rw - r -- 1 paul paul 16960 2010 - 03 - 06 08 : 57 surround . vim
- rw - r ----- 1 paul paul 54261 2011 - 07 - 24 02 : 27 tabbar . vim
2. .vimrc配置文件
在home目录下建立一个.vim rc文件,用于配置vim各种插件
set lines=45 columns=200
" 不兼容VI键盘,使用vim键盘
set nocompatible
" 文件类型识别
filetype on
filetype plugin indent on
" 禁止生成临时文件
set nobackup
set noswapfile
" 历史记录数
set history=50
" 设置编码
set enc = utf - 8
" 设置文件编码
set fenc=utf-8
" 设置文件编码检测类型及支持格式
set fencs = utf - 8 , ucs - bom , gb18030 , gbk , gb2312 , cp936
" 设置开启语法高亮
syntax on
" 显示行号
set number
" 高亮显示匹配的括号
set showmatch
" 搜索忽略大小写
set ignorecase
" 查找结果高亮度显示
set hlsearch
set incsearch
" tab宽度
set tabstop = 4
set cindent shiftwidth = 4
set autoindent shiftwidth = 4
" 命令行下按tab键自动完成
set wildmode=list:full
set wildmenu
" 设置默认的颜色
colorscheme darkblue
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 通过使用 : commands命令,告诉我们文件的哪一行被改变过
set report = 0
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 设置自动保存
imap < F9 > < Esc >: up < cr >
" 把 F8 映射到 启动NERDTree插件
let NERDTreeShowBookmarks = 1
let NERDChristmasTree = 1
let NERDTreeWinPos = " left "
map <F8> :NERDTree<CR>
" 在不同的窗口移动
map < C - j > < C - W > j
map < C - k > < C - W > k
map < C - h > < C - W > h
map < C - l > < C - W > l
" 设置FuzzyFinder
let mapleader = " \\ "
map <leader>F :FufFile<CR>
map <leader>f :FufTaggedFile<CR>
map <leader>g :FufTag<CR>
map <leader>b :FufBuffer<CR>
" 设置Color - Sample
map < silent >< F3 > : NEXTCOLOR < cr >
map < silent >< F2 > : PREVCOLOR < cr >
" 设置Rubytest
let g:rubytest_cmd_spec = " rspec - fd % p "
" 设置SuperTab
let g : SuperTabRetainCompletionType = " context "
3. 使用NERDTree
vim会把当前被打开的文件所在位置作为默认的目录,为了快速定位到我们的project目录,我们可以使用NERDTree提供的Bookrmark功能::Bookmark <name> 把一个目录作为一个标签保存起来。下次直接在NERDTree的目录树上双击或者按Enter键跳到project的目录位置,非常方便!
4. 使用Snipate和SuperTab
Snipate乃是Rails开发的一大神器,内置了对很多语言的代码片段的支持。可以自己配置。配置文件位于~/.vim/snipp ets目录下。SuperTab同样也可以用于自动完成,它主要用于文本方面的自动完成,SuperTab有几种自动完成模式,通常比较常用的是“context”模式 --- 即上下文联想方式(根据Buffer中已经存在的文本自动匹配联想)
let g:SuperTabRetainCompletionType= " context "
注意SnipMate和SuperTab会有冲突:两者同样都使用Tab键作为补全。本人测试的结果是Ruby语法可以自动补齐,但是HTML文件不行。比较遗憾,还没有找到解决方案
5. 使用FuzzyFinder
FuzzyFinder的出现,基 本满足了我在vim中像Eclipse一样使用Ctrl+Alt+O查找打开文件的愿望了。而且FuzzyFinder提供了很多种模糊查找的方式。比较常用的有按照已标签的文件,按照文件的名称,按照Buffer中打开的文件。具体的配置如下:
let mapleader = " \\ "
map <leader>F :FufFile<CR>
map <leader>f :FufTaggedFile<CR>
map <leader>g :FufTag<CR>
map <leader>b :FufBuffer<CR>
在Normal模式下,同时按下\和f键,可以查找标签文件中的内容(使用Ctag . -R生成的标签文件),按下\和F可以按照目录结构来查找文件。最有用的是\b,可以在已经打开的文件中来回切换,对于经常打开十几个文件同时编辑的程序员来说,非常有用。
FuzzyFinder有一个不爽的地方:就是当它和NERDTree配合时,如果当前光标的焦点是在NERDTree的窗口,那么Finder会在该窗口打开文件,而不是新开一个tab,这个着实让人恼火~。我的习惯是在vim启动后,把使用Ctrl + W先把光标切换到右侧的编辑区,然后使用FuzzyFinder查找打开文件,就不会存在上述的问题了
6. 使用RubyTest
RubyTest可以自动运行Ruby的测试代码,同样的它也支持RSpec。在Normal模式下,默认 按下\T可以运行测试代码。我们可以打开一个console,运行guard start来启动Spork,预加载测试环境。然后按下\T来运行测试代码,这样就无需来回切换工作窗口了。为了让测试结果根据简洁明了,我们可以使用RSpec的-f参数来格式化输出
注意:运行RubyTest,必须确保vim当前的目录是一个Rails的Project,如果是通过Bookmark跳转到Project位置的,运行RubyTest会提示Require 'XXX'文件缺失
7. 相应的截图
Screenshot
8. vim插件下载地址
http://www.vim.org/scripts/script.php?script_id=1338
http://www.vim.org/scripts/script.php?script_id=1488
http://www.vim.org/scripts/script.php?script_id=159
http://www.vim.org/scripts/script.php?script_id=1643
http://www.vim.org/scripts/script.php?script_id=1658
http://www.vim.org/scripts/script.php?script_id=1697
http://www.vim.org/scripts/script.php?script_id=1849
http://www.vim.org/scripts/script.php?script_id=1984
http://www.vim.org/scripts/script.php?script_id=2540
http://www.vim.org/scripts/script.php?script_id=2612
http://www.vim.org/scripts/script.php?script_id=273
http://www.vim.org/scripts/script.php?script_id=3252
http://www.vim.org/scripts/script.php?script_id=625
http://www.vim.org/scripts/script.php?script_id=90
http://www.vim.org/scripts/script.php?script_id=95