`
yangzhihuan
  • 浏览: 168752 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Rails开发工具之Vim

阅读更多

学习和开发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的快捷键,由此可见习惯是多么难改变).

 

 

分享到:
评论
23 楼 golden05 2009-10-22  
vim 中如果要开发诸如rails系统的view部分, erb文件中的
<% %> 用啥插件可以帮组解决,她要用到哪些快捷键
22 楼 yangzhihuan 2009-10-21  
@huacnlee 好像有一个模拟window快捷建的插件,叫做msvin.vim,你是不是用这个了?
21 楼 icefishc 2009-10-21  
night_stalker 写道

eclipse 和 netbeans 在背景显示上更强一点 …… 但是 vim 这么快,就忍了。

还是用emacs吧 
想要背景图片都没问题。。。。 emacsclient不比vim慢
20 楼 rrrrutdk 2009-10-21  
为什么打开vim再cd ~/project?
直接vim ~/project不行吗(如果你装了NERDTree的话)
19 楼 qgymje 2009-10-21  
如何用vim连接到ftp服务器上,并且在线编辑文件呢?最好是有连接的一个表,类似于nerd tree,有这样一个Plugin么?
18 楼 wayne_deng 2009-10-20  
netbeans和rubymine都爱用,VIM更喜欢,就一个字:快
17 楼 huacnlee 2009-10-20  
<div class="quote_title">poshboytl 写道</div>
<div class="quote_div">
<div class="quote_title">yangzhihuan 写道</div>
<div class="quote_div">
<div class="quote_title">poshboytl 写道</div>
<div class="quote_div">对了补充一个问题, 写快捷键配置的时候. mac OS里的'command'键,怎么写啊?</div>
<br><br>我用不起MAC,不太清楚,你可以参考一下这个MAC下的VIM配置 <a href="http://www.limboy.com/2009/05/30/vim-setting/" target="_blank">http://www.limboy.com/2009/05/30/vim-setting/</a> 我之前学习VIM的时候看到的.<br>
</div>
<br><br><br>好文....收藏了...<img src="/images/smiles/icon_smile.gif" alt="">
</div>
<p> </p>
<p>看看我的这个 Vim 配置文件: <a href="http://code.google.com/p/vimmate/" target="_blank">http://code.google.com/p/vimmate/</a></p>
<p> </p>
<h2><a name="%E5%BF%AB%E6%8D%B7%E9%94%AE%E8%AF%B4%E6%98%8E">快捷键说明</a></h2>
<ul>
<li><a name="%E5%BF%AB%E6%8D%B7%E9%94%AE%E8%AF%B4%E6%98%8E"><tt>&lt;F7&gt;</tt> 开关 <strong>NERD tree</strong> (文件目录树) </a></li>
<li>
<a name="%E5%BF%AB%E6%8D%B7%E9%94%AE%E8%AF%B4%E6%98%8E"><tt>&lt;F8&gt;</tt> 开关 <strong>BufExplorer</strong></a><strong><a href="http://code.google.com/p/vimmate/w/edit/BufExplorer">?</a></strong> (用于切换已经打开的文件,Tab的替代品) </li>
<li>
<tt>&lt;Ctrl+F12&gt;</tt> 显示/隐藏 <strong>主菜单</strong> (默认隐藏) </li>
<li>
<tt>&lt;Ctrl+w 然后 上下左右&gt;</tt> Buffer来回切换,切换光标到 NERD tree、编辑区... </li>
<li>
<tt>&lt;Ctrl+c,x,v,z,y,a&gt;</tt> 复制、剪切、粘贴、撤销、重做、全选... 类似 Notepad 的快捷键 </li>
</ul>
<blockquote>
<h3><a name="NERD_tree">NERD tree</a></h3>
<ul>
<li><a name="NERD_tree"><tt>&lt;b&gt;</tt> 开/关 <strong>收藏夹</strong> </a></li>
<li><a name="NERD_tree"><tt>&lt;D&gt;</tt> 删除 选中的 <strong>收藏</strong> </a></li>
<li><a name="NERD_tree"><tt>&lt;?&gt;</tt> 显示帮助 </a></li>
<li><a name="NERD_tree"><tt>&lt;Enter&gt;</tt> 选择/展开关闭 <strong>目录</strong> </a></li>
<li><a name="NERD_tree"><tt>&lt;m&gt;</tt> 显示文件操作菜单,用它来创建/移动/删除 <strong>目录或文件</strong> </a></li>
<li><a name="NERD_tree"><tt>&lt;u&gt;</tt> 跳到上一个文件夹 </a></li>
<li><a name="NERD_tree"><tt>&lt;C&gt;</tt> 将跟节点转入当前选中的目录 </a></li>
<li><a name="NERD_tree"><tt>&lt;r&gt;</tt> 刷新选中的目录 </a></li>
<li><a name="NERD_tree"><tt>&lt;R&gt;</tt> 刷新根节点的目录 </a></li>
<li><a name="NERD_tree"><tt>&lt;cd&gt;</tt> 将vim的运行时目录改为选中的目录 </a></li>
<li><a name="NERD_tree">-- 命令 --------------------------------------------------------- </a></li>
<li><a name="NERD_tree">Bookmark 别名 收藏 NERD tree 里面当前选择的目录 </a></li>
</ul>
</blockquote>
<blockquote>
<h3>
<a>BufExplorer</a><a href="http://code.google.com/p/vimmate/w/edit/BufExplorer">?</a>
</h3>
<ul>
<li>
<tt>&lt;D&gt;</tt> 关闭选中的文件 </li>
<li>
<tt>&lt;d&gt;</tt> 清楚选中的文件 </li>
<li>
<tt>&lt;Enter&gt;</tt> 切换到选中的文件 </li>
<li>
<tt>&lt;p&gt;</tt> 显示隐藏 <strong>文件名列</strong> </li>
<li>
<tt>&lt;R&gt;</tt> 显示隐藏 <strong>文件目录列</strong> </li>
<li>
<tt>&lt;u&gt;</tt> 显示隐藏 <strong>未列出的 Buffers</strong> </li>
<li>
<tt>&lt;s&gt;</tt> 改变排序方式 <em>"编号(打开的顺序)","文件名","目录名","mru","扩展名"</em> </li>
<li>
<tt>&lt;r&gt;</tt> 倒序排列 </li>
</ul>
</blockquote>
<h2><a name="Screenshoot">Screenshoot</a></h2>
<p><a rel="nofollow" href="http://www.flickr.com/photos/huacnlee/4028143746/sizes/o/"><img src="http://farm3.static.flickr.com/2545/4028143746_48db4cfac2.jpg" alt=""></a> </p>
<p><a rel="nofollow" href="http://www.flickr.com/photos/huacnlee/4028143724/sizes/o/in/photostream/"><img src="http://farm3.static.flickr.com/2527/4028143724_2e401490ea.jpg" alt=""></a> </p>
<p> </p>
16 楼 poshboytl 2009-10-20  
yangzhihuan 写道
poshboytl 写道
对了补充一个问题, 写快捷键配置的时候. mac OS里的'command'键,怎么写啊?


我用不起MAC,不太清楚,你可以参考一下这个MAC下的VIM配置 http://www.limboy.com/2009/05/30/vim-setting/ 我之前学习VIM的时候看到的.



好文....收藏了...
15 楼 poshboytl 2009-10-20  
yangzhihuan 写道
不是说TextMate会有一个支持unicode的版本吗?
想不到神器也是有缺点的,哈...


我Textmate用的是一个日本人写的插件.
可以倒是可以显示中文, 但是非常之挤, 看久了头疼.

反正也打算学习学习 vim或emacs... 正好就这个机会咯.....

14 楼 yangzhihuan 2009-10-20  
poshboytl 写道
对了补充一个问题, 写快捷键配置的时候. mac OS里的'command'键,怎么写啊?


我用不起MAC,不太清楚,你可以参考一下这个MAC下的VIM配置 http://www.limboy.com/2009/05/30/vim-setting/ 我之前学习VIM的时候看到的.
13 楼 yangzhihuan 2009-10-20  
不是说TextMate会有一个支持unicode的版本吗?
想不到神器也是有缺点的,哈...
12 楼 poshboytl 2009-10-20  
对了补充一个问题, 写快捷键配置的时候. mac OS里的'command'键,怎么写啊?
11 楼 poshboytl 2009-10-20  
正好最近要做一个国内项目. Textmate的中文显示实在让我不能忍受了.
是个机会玩玩vim, 这个项目就用它了, 我也上个图. 感谢楼主 好文.



10 楼 wolfplanet 2009-10-20  
Rmodel, buffer什么的本来就可以模糊查询啊
:Rcontroller a/cnc # admin/company_news_categories

另外mercurial用起来也是很直观的能够看到diff吗
9 楼 yangzhihuan 2009-10-20  
下载了 saberma 同学的vim配置文件,不过我用不着那么多的插件,只是用了部分.
fuzzyfinder_textmate.vim 真是好用,直接文件名就可以了,太省功夫了.

从 saberma 同学的blog也知道了格式的命令: gg=G (输入确实麻烦,于是我把F7映射给它了.)
8 楼 yangzhihuan 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(不过上面什么也没有的)
7 楼 yeaha 2009-10-19  
>不知道有支持svn的vim plugin没有

vcscommand
http://www.vim.org/scripts/script.php?script_id=90
6 楼 花花公子 2009-10-19  
一般都用git-svn访问svn仓库,要比较GUI效果要拿gvim比,gvim还是挺爽的。
5 楼 night_stalker 2009-10-19  
git 和 mercurial 比较爽的是 merge 时自动打开 vim 的 diff 视图。

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

有插件可以让你直接编辑 svn 服务器上的文件,或者编辑时自动锁定文件。好像还有 local history 相关的插件,不过没用过也不好评论。。。
显示文件是否已修改状态,应该是 nerd_xxx 插件的功能。
eclipse 和 netbeans 在背景显示上更强一点 …… 但是 vim 这么快,就忍了。
4 楼 机器人 2009-10-19  
楼上的 我不是在说版本控制,我是在说编辑器,谢谢。

相关推荐

    dotvim:用于 Ruby on Rails 开发的 Vim

    My Vim for Ruby on Rails 开发 MacVim 用户警告 我已经停止使用 MacVim(主要是)并开始在 Tmux 中使用控制台 Vim。 提取到分支的最新 MacVim 配置不再受支持。 但仍包含此处描述的大部分功能。 特征 Ruby on Rails...

    ubuntu 10.10系统安装及vim(ROR)开发环境完整配置

    现在,你已经在Ubuntu 10.10上成功构建了一个包含Vim和Ruby on Rails开发环境的系统。通过持续学习和实践,你将能够更高效地利用这个环境进行Web应用开发。记住,定期更新系统和依赖,以确保安全性和兼容性。

    ruby on rails 101

    ”这句话生动地描述了Ruby on Rails的独特之处以及它在Web开发领域的影响力。 #### 二、安装 安装Ruby on Rails的方法多样,具体包括: - **InstantRails**:适用于Windows用户的单击安装包。 - **Locomotive**:...

    vim-rubymotion:Vim 插件以帮助开发 RubyMotion

    `vim-rubymotion` 是一个专为 RubyMotion 开发者设计的 Vim 插件,它的目标是为 Vim 提供与 `vim-rails` 相似的强大支持,使得在 Vim 编辑器中进行 RubyMotion 项目的开发变得更加高效和便捷。尽管当前该插件可能还...

    vagrant-rails:为 Ruby on Rails 准备的开发环境

    这个 vagrant 配置文件旨在构建一个随时可用的 Rails开发环境。 什么是流浪者? Vagrant 是一个创建虚拟机的工具。 你可以在 Mac、Windows 或 Linux 上安装 Vagrant 创造环境 $ git clone ...

    开发者必备的8个最佳云端集成开发环境.pdf

    在当今数字化时代,越来越多的开发工具和环境正逐渐转向云端,以适应全球化、协作和高效开发的需求。本文将详细介绍8个最佳的云端集成开发环境(IDE),它们为开发者提供了便捷、灵活且功能丰富的编码体验。 1. **...

    rails6_alp

    Rails 6 是 Ruby on Rails 框架的一个主要版本,带来了许多新特性和改进,旨在提升开发效率和应用性能。本文将深入探讨 Rails 6 的关键特性,以及如何利用 Shell 命令来管理和操作 Rails 项目。 首先,Rails 6 引入...

    初学web开发需要掌握哪些知识.docx

    此外,了解并掌握一些开发工具,例如Visio、Dreamweaver、Visual Studio、Eclipse、Vim、EditPlus或Notepad++,以及数据库管理工具如phpMyAdmin,浏览器及其开发者工具如Firebug和Web Development Helper,这些都是...

    dotfiles:各种配置文件和VIM插件

    4. **Ruby**:Ruby是一种动态、面向对象的脚本语言,常用于Web开发(如搭配Rails框架)和自动化脚本。 5. **MacVim**:MacVim是在macOS上运行的Vim文本编辑器的一个版本,它提供了与系统更好的集成,如使用Mac的...

    centos6 安装redmine+apache2

    Redmine 是一个基于 Web 的项目管理工具,使用 Ruby on Rails 框架开发,需要特定的 Ruby 和 Rails 版本。下面是安装 Redmine 和 Apache2 的详细步骤。 一、安装 Redmine 需要的 Ruby 和 Rails 版本 Redmine 需要...

    RailsBox-开源

    为Ruby on Rails开发定制Lubuntu。 工具:Vim,RVM,Ruby 1.9.2,Rails 3.1,Tmux,Open Ssh Server,VirtualBox无缝集成。

    Pragmatic.Textmate.Power.Editing.for.the.Mac.Feb.2007.pdf

    对于Mac用户来说,TextMate无疑是一款强大的编辑工具,尤其是在Ruby on Rails开发中发挥着重要作用。本文将基于《TextMate: Power Editing for the Mac》这本书的内容,深入探讨TextMate的各项特性及其对开发者的...

    2021-2022年收藏的精品资料软件工程师推荐10个开发者最常用的代码编辑器.docx

    Aptana不仅支持JavaScript,还支持Ruby on Rails,并随着技术发展增加了对iPhone和Adobe AIR的开发支持。它拥有代码辅助、代码结构概览、语法错误检查、自定义UI扩展和跨平台兼容性,特别适用于Web2.0应用程序的开发...

    gitlab+harbor+sonarqube+jenkins+maven实现Devops

    gitlab_rails['time_zone'] = 'Asia/Shanghai' puma['worker_processes'] = 2 sidekiq['max_concurrency'] = 8 postgresql['shared_buffers'] = "128MB" postgresql['max_worker_processes'] = 4 prometheus_...

    GitLab搭建-1.0.pdf

    GitLab是一个基于Ruby on Rails开发的开源平台,与GitHub相似,它提供了浏览源代码、缺陷跟踪和注释等功能,使得团队成员可以高效地协作开发项目。 在GitLab服务的组成部分中,以下列出的关键组件至关重要: 1. **...

    笔记本电脑安装:Fabriquartz,这是笔记本电脑的默认安装

    Ruby是一种面向对象的、动态类型的编程语言,广泛用于Web开发,特别是与Rails框架的结合。在安装过程中,我们需要确保Ruby环境已经就绪,并且版本符合Fabriquartz的要求。通常,安装Ruby可以通过管理工具如RVM(Ruby...

    redhat 6.x gitlab最新6.6部署指南

    2. 使用yum命令安装所有必需的依赖包,这些包涵盖了开发工具、系统工具、编程语言及其开发环境、数据库和网络相关工具等。 3. 这些依赖包包括但不限于vim、readline、ncurses、gdbm、glibc、tcl、openssl、curl、...

    开发实践:通过这些想法练习您的技能

    在开发领域,不断练习和提升技能至关重要。...同时,不要忘记使用版本控制工具(如 Git)跟踪你的进度,并通过 Vim 提升编码速度。积极参与开源项目和黑客马拉松,可以让你在实践中提升技能,积累实战经验。

Global site tag (gtag.js) - Google Analytics