论坛首页 编程语言技术论坛

Rails开发工具之Vim

浏览 44892 次
该帖已经被评为良好帖
作者 正文
   发表时间:2009-10-19  

学习和开发Ruby & Rails已经一年多了.但是正式全职Rails项目的开发只有可怜的4个月经验.这期间我一直使用Netbeans 6.x作为开发工具,到目前为止我依然认为它是开发Ruby & Rails程序的最佳开发工具(我没用过最新出来的RubyMine,另外这是一个付费产品,我也不会付费用它,但也不会用D版).

 

在网上可以看到很到开发Rails的同学使用Vim这个神器来开发的(就在JaveEye也有不少).但是由于我的vim水平只局限于只会使用有限的几个命令( i, :w, :x, dd ).所以我一直都觉得用Vim来开发有点儿不可思议,另一个原来是我是从Java转到Ruby的,习惯使用IDE.

 

这种情况一直到某天夜晚, Arbow 同学出于某不可知的原因发了一个Vim for rails的图片链接给我看( 这里 ),于是发生了我一夜折腾Vim for Rails的惨剧.

 

试用了两天Vim for Rails,发现用起来并没有我想象中的那么难,相比于Netbeans的最大优点就是快!什么都快! 打开/查找文件,搜索等等,什么都快,什么操作基本上都是按下Enter之后,立马就出来了.启动速度更加不用说了.但是这个前提就是你得安装好你要用到的插件,另外还有一些vim的常用配置(以前我一听到配置,心里就开始打退堂鼓了,其实没那么恐怖的,只要你认真在网上学习一下,不得不说的是vim的配置在网上真是多到不得了).

 

安装VIM

 

我的开发机器用的操作系统是Ubuntu 9.04,所以下面的安装配置都是针对Linux系统的.我除了安装命令行界面的VIM外,还装了一个GUI界面的,为了可以独立启动它.

sudo apt-get install vim 
sudo apt-get install vim-gtk //很明示这个是gtk gui支持的vim,在命令行下面的启动命令是: gvim

 提醒一下,Ubuntu系统默认安装的vim是一个简化版本,很多东西都不支持的,比如语法高亮.

 

如果要配置你的VIM,你还要两个配置文件(一个专门用于gvim的.),都是放在你的用户根目录下:

~/.vimrc 这个是vim的配置

set guifont=Monaco\ 11
 " set guifontwide=WenQuanYi\ Zen\ Hei:h12:cGBK
 " 设定文件浏览器目录为当前目录
 set bsdir=buffer
 " 设置编码
 set enc=utf-8
 " 设置文件编码
 set fenc=utf-8
 " 设置文件编码检测类型及支持格式
 set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
 " 设置开启语法高亮
 syntax on
 "显示行号
 set number
 " 查找结果高亮度显示
 set hlsearch
 " tab宽度
 set tabstop=4
 set cindent shiftwidth=4
 set autoindent shiftwidth=4
 filetype plugin indent on
" 把 F8 映射到 启动NERDTree插件
 map <F8> :NERDTree<CR>
" 把 CTRL-S 映射为 保存,因为这个操作做得太习惯了
 imap <C-S> <C-C>:w<CR>
 

~/.gvimrc 这个是针对GUI界面的配置

"把gvim的菜单和工具栏隐藏掉,按F2可调出,再按隐藏
 set guioptions-=m
 set guioptions-=T
 map <silent> <F2> :if &guioptions =~# 'T' <Bar>
         \set guioptions-=T <Bar>
         \set guioptions-=m <bar>
     \else <Bar>
         \set guioptions =T <Bar>
         \set guioptions =m <Bar>
     \endif<CR>

" 启动gvim时窗口的大小
 set lines=33 columns=113

 插件

可以自己到 VIM网站 下载,一般来说zip,tar.gz打包的文件,直接解压放到 ~/.vim目录下就可以了,如果是 plugin_name.vim 文件就更加简单了,直接放到 ~/.vim/plugin下面,省心又省事. 在下载页面上一般都有一个 install Detail的说明,那就是安装说明,多看一眼,你会少走很多弯路的.

 

我安装的VIM插件,我是参考 http://linuxtoy.org/archives/ruby-rails-on-linux.html :

  1. rails.vim 这个是rails的插件,必不可少的.
  2. snipMate 这个就是号称让VIM跟MAC下的神器TextMate有同样表现的插件,也是必装的.
  3. NERD_tree 显示目录树,我觉得比那个Project.vim要好用多了,所以我没有装Project.vim
  4. supertab.vim
  5. NERD_commenter.vim 快捷来加删comment的,不过我好像还没用过.
  6. lookupfile.vim 找文件,如果你只是用来开发rails的话,可以不用.
  7. bufexplorer.vim buffer切换
  8. genutils.vim
  9. javascript.vim
  10. blackboard.vim 这个就是模仿TextMate的配色,很重要.
  11. Monaco字体 这个不是插件,不过这个字体很漂亮 下载地址: http://www.webdevkungfu.com/textmate-envy-aka-monaco-font-for-windows/

基本上vim for rails 已经可以用了.放上我的效果图:

 

 

使用

  1. 不是所有的vim插件都会自动启用的.一般的vim插件都是要使用命令来启动的,我刚用的时候不知道这个,抓狂了一阵子.比如你要使用NERDTree插件,要先输入如下命令:
    :NERDTree
    //我把这个命令映射到 F8 了,请看上面的配置文件.
     
  2. rails.vim插件只有一个全局的命令Rails,这个会新建一个Rails项目.
  3. 其它的rails.vim的命令都是要找开了Rails项目的文件才能使用的,这个我很是郁闷.比如你想查找一个user.rb文件打开,本来是应该使用 Rfind user.rb ,但是由于你的VIM没有打开任何Rails项目中的文件,这个命令不可用!!
  4. 下面说说我一般的使用方法:
    • 打开vim,先cd ~/my_project_path
    • 按一下F8,启动NERDTree插件,把我的项目目录树显示出来.
    • 一般rails使用命令:
      #如果你要找一个文件
      :Rfind routes.rb
      
      #如果你想打开一个model
      :Rmodel user
      
      #如果你想打开一个conotroller
      :Rcontroller users
      :Rcont users
      
      #如果你想打开一个view
      :Rview users/index
      :Rview users/_user
      #如果你的当前窗口的文件是在app/views/users/下的话
      :Rview show #相当于 :Rview users/show
      
      #如果你当前光标是controller的index方法中,直接按 R 可以中转到视图文件 index.html.erb中
      
      #其它的方法如
      :Rserver #启动服务器
      :Rserver! #停止服务器
      :Rjavascript js_name #打开js文件
      
      #还有很多,输入帮助命令自己看吧
      :help rails
       
    • 不要使用 :Rlog 在vim上看日志文件,因为我用的时候,发现它更新时很慢,要等一下才会输出.还是老实地在终端上用 tail吧.

试用了两天,觉得还可以,效率很高,弄好那个配色之后,看着非常舒服,还有就是vim的速度,真的是非常快,什么都快.

Netbeans的长处在于文件,方法之间的跳转非常的方法,但是就是启动慢,查找的时候也比较慢,有时会有些不耐烦.

我还未决定是否会使用vim作为主力开发工具,毕竟Netbeans有很多我无法舍弃的优点,还有就是对快捷键的习惯(我以前用Java的时候,使用的是Eclipse,到现在使用netbeans还是使用Eclipse的快捷键,由此可见习惯是多么难改变).

 

 

   发表时间:2009-10-19  
一个无法离开ide的原因是svn啊,虽然用编辑器那些小家伙,配合命令行的svn,在项目大的时候还是感觉文件改动标示不直观。

ide中在项目tree文件列表标记svn各种状态还是非常实用的功能。

不知道有支持svn的vim plugin没有
0 请登录后投票
   发表时间:2009-10-19  
刚用vim有这水平也不错了,而且还总结得那么详细

不知你用fuzzyfinder_textmate.vim没有,用上了,那些:Rmodel user等命令就不需要了
直接CTRL+T打文件名模糊查询更快

我之前也总结了一点vim常用命令
http://saberma.github.com/2009/10/10/vim.html

我的vim配置
git://github.com/saberma/vimfiles.git
1 请登录后投票
   发表时间:2009-10-19  
机器人 写道
一个无法离开ide的原因是svn啊,虽然用编辑器那些小家伙,配合命令行的svn,在项目大的时候还是感觉文件改动标示不直观。

ide中在项目tree文件列表标记svn各种状态还是非常实用的功能。

不知道有支持svn的vim plugin没有


试试git,非常好用
项目放在github.com上可以更方便的开源,fork出来后,随便折腾都没关系
0 请登录后投票
   发表时间:2009-10-19  
楼上的 我不是在说版本控制,我是在说编辑器,谢谢。
0 请登录后投票
   发表时间:2009-10-19   最后修改:2009-10-19
git 和 mercurial 比较爽的是 merge 时自动打开 vim 的 diff 视图。

一般不需要插件吧 …… 在 vim 里直接运行命令就可以了。
可以设个快捷键,自己按一下 F6 就 commit …… 之类的。

有插件可以让你直接编辑 svn 服务器上的文件,或者编辑时自动锁定文件。好像还有 local history 相关的插件,不过没用过也不好评论。。。
显示文件是否已修改状态,应该是 nerd_xxx 插件的功能。
eclipse 和 netbeans 在背景显示上更强一点 …… 但是 vim 这么快,就忍了。
0 请登录后投票
   发表时间:2009-10-19  
一般都用git-svn访问svn仓库,要比较GUI效果要拿gvim比,gvim还是挺爽的。
0 请登录后投票
   发表时间:2009-10-19  
>不知道有支持svn的vim plugin没有

vcscommand
http://www.vim.org/scripts/script.php?script_id=90
0 请登录后投票
   发表时间:2009-10-19  
saberma 写道
刚用vim有这水平也不错了,而且还总结得那么详细

不知你用fuzzyfinder_textmate.vim没有,用上了,那些:Rmodel user等命令就不需要了
直接CTRL+T打文件名模糊查询更快

我之前也总结了一点vim常用命令
http://saberma.github.com/2009/10/10/vim.html

我的vim配置
git://github.com/saberma/vimfiles.git


如果可以模糊查询就真是太好了,在netbeans是常用这个功能来打开文件,但netbeans查询的时候慢得我受不了.马上去下载 fuzzyfinder_textmate.vim 来试试.
多谢你的推荐啊.另外俺在github上follow了你,我的ID:yzhrain(不过上面什么也没有的)
0 请登录后投票
   发表时间:2009-10-20  
下载了 saberma 同学的vim配置文件,不过我用不着那么多的插件,只是用了部分.
fuzzyfinder_textmate.vim 真是好用,直接文件名就可以了,太省功夫了.

从 saberma 同学的blog也知道了格式的命令: gg=G (输入确实麻烦,于是我把F7映射给它了.)
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics