`
yangzhihuan
  • 浏览: 168749 次
  • 性别: 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的快捷键,由此可见习惯是多么难改变).

 

 

分享到:
评论
63 楼 devworks 2010-06-06  
到墙外去了
62 楼 kilik52 2010-06-06  
LS的链接打不开阿。不过我在vim.org上找到一个。
Align: http://www.vim.org/scripts/script.php?script_id=294
很好用,下下来有2个部分,Align和AlignMaps。AlignMaps是一些快捷键映射,因为添加的映射实在太多了,用:map看着闹心,也怕和我现有的映射有冲突,装好后就把autoload中的AlignMaps.vim和plugin里面的AlignMapsPlugin.vim删了。不过喜欢这些快捷键映射的话就用默认的也不错。
61 楼 devworks 2010-06-04  
60 楼 活靶子 2010-06-04  
yantoba 写道
请教一下这样的代码
    name    :string
    company :string
    address_1 :string
    address_2 :string
    city :string
    state :string
 

如何格式化为
    name      :string
    company   :string
    address_1 :string
    address_2 :string
    city      :string
    state     :string


需要什么插件么。


VIM可以格式化代码吗,或者有其他能格式化代码的插件吗?如果可以或者有,我们就可以自己改造了
59 楼 yantoba 2010-05-28  
请教一下这样的代码
    name    :string
    company :string
    address_1 :string
    address_2 :string
    city :string
    state :string
 

如何格式化为
    name      :string
    company   :string
    address_1 :string
    address_2 :string
    city      :string
    state     :string


需要什么插件么。
58 楼 huacnlee 2010-05-07  
我现在配置的 VimMate:
http://github.com/huacnlee/vimmate

公司里面新来的两个Vim新手也很快上手了
57 楼 stray_ay 2010-04-30  
很早以前好像在灰狐上看的用ctags,不过我都是在c++项目中,rails还没试过
命令是  :!ctags -R
可以在当前目录下生成包含所有文件tags(包括子目录)的一个名为 tags 的文件
建议在项目根目录下生成

需要跳转时,把光标停在方法名上,按ctrl+]就可以跳到定义这个方法的代码处,
按ctrl+o可以跳回原处

刚测试了一下rails也没问题。但如果在tags文件所在的子目录下打开文件并尝试跳转时
会提示找不到tags文件,而这个tags文件中的tag所指文件路径都是相对tags文件所
在当前目录的相对路径,所以把这个tags文件简单copy到别的目录也不行,会提示找
不到要跳转的那个tag所在的文件。

我只有一个笨办法解决,在 _vimrc 文件中加上一句
set tags+=你生成的tags文件的 full path
然后重新打开文件,就可以实现跳转了
56 楼 jayliud 2010-04-26  
yangzhihuan 写道
jayliud 写道

刚刚又试了一下好像在rails的项目里跳转还是蛮准的,但是只能够实现文件的跳转,能不能实现不同文件中间方法的跳转呢?谢谢了


不同文件间方法的中转好像是不能的.

我通常都是先跳到文件,然后搜索方法,反正vim的搜索超快,不用就浪费啦.

搜索的命令是  :/keyword

嗯,我现在也是这么干的,但是有时候搞个新项目你代码结构都不怎么熟,不知道这方法属于那个类或模块就比较麻烦了,rails还好点代码组织都差不多,纯ruby项目就不好弄了,好像有个taglist插件我得去研究研究!!!
55 楼 yangzhihuan 2010-04-26  
jayliud 写道

刚刚又试了一下好像在rails的项目里跳转还是蛮准的,但是只能够实现文件的跳转,能不能实现不同文件中间方法的跳转呢?谢谢了


不同文件间方法的中转好像是不能的.

我通常都是先跳到文件,然后搜索方法,反正vim的搜索超快,不用就浪费啦.

搜索的命令是  :/keyword
54 楼 dazuiba 2010-04-26  
最好买本书,好好看一下.

否则你就会像我一样, 用了两年了,  还时常发现有些很有用的摩纳哥领
53 楼 jayliud 2010-04-25  
jayliud 写道
yangzhihuan 写道
jayliud 写道
想知道怎么样配置好vim可以同时在NERDTree下编辑多个文件,还有IDE那种点击方法名就跳转到指定的类的方法功能呀?


编辑多个文件的话,可以这样:
//用 :sp 命令分割窗口,然后在各个窗口打开不同的文件就可以了.
:sp


点击文件名就跳转,在vim下可以这样:
1.把光标移动到单词处,如user
2.按下  gf 就会自动查找并打开 user.rb 这个文件了.
(这个功能貌似是 rails.vim的)

刚刚试了一下sp还是蛮不错的,只是刚开始有点不习惯。gf搜索跳转就不行了太不智能了 Test.new 它好像会去找Test.new.rb,应该不会像Neatbeans代码跳转这么强大吧,我也感觉有点过份了呵呵!!!

刚刚又试了一下好像在rails的项目里跳转还是蛮准的,但是只能够实现文件的跳转,能不能实现不同文件中间方法的跳转呢?谢谢了
52 楼 jayliud 2010-04-25  
yangzhihuan 写道
jayliud 写道
想知道怎么样配置好vim可以同时在NERDTree下编辑多个文件,还有IDE那种点击方法名就跳转到指定的类的方法功能呀?


编辑多个文件的话,可以这样:
//用 :sp 命令分割窗口,然后在各个窗口打开不同的文件就可以了.
:sp


点击文件名就跳转,在vim下可以这样:
1.把光标移动到单词处,如user
2.按下  gf 就会自动查找并打开 user.rb 这个文件了.
(这个功能貌似是 rails.vim的)

刚刚试了一下sp还是蛮不错的,只是刚开始有点不习惯。gf搜索跳转就不行了太不智能了 Test.new 它好像会去找Test.new.rb,应该不会像Neatbeans代码跳转这么强大吧,我也感觉有点过份了呵呵!!!
51 楼 yangzhihuan 2010-04-25  
jayliud 写道
想知道怎么样配置好vim可以同时在NERDTree下编辑多个文件,还有IDE那种点击方法名就跳转到指定的类的方法功能呀?


编辑多个文件的话,可以这样:
//用 :sp 命令分割窗口,然后在各个窗口打开不同的文件就可以了.
:sp


点击文件名就跳转,在vim下可以这样:
1.把光标移动到单词处,如user
2.按下  gf 就会自动查找并打开 user.rb 这个文件了.
(这个功能貌似是 rails.vim的)
50 楼 jayliud 2010-04-25  
想知道怎么样配置好vim可以同时在NERDTree下编辑多个文件,还有IDE那种点击方法名就跳转到指定的类的方法功能呀?
49 楼 yangzhihuan 2010-03-22  
最新的rails.vim(版本是4.2) 已经支持Rails 3了.
48 楼 yangzhihuan 2009-12-24  
@fl1429


应该是vim还没有加载rails.vim插件的原因,虽然rails.vim有autoreload,但是好像不太靠谱.我也遇到过这个问题.

解决的方法:
用vim随便打开一个在你的rails项目中的rb文件,这时rails.vim会自动加载,再运行Rserver就没有问题了.
47 楼 fl1429 2009-12-24  
像 netbeans 那样的 output 怎么看?
46 楼 fl1429 2009-12-24  
装了 rails.vim,运行 :Rserver
Not an edit command: Rserver 怎么回事?
45 楼 fantasybei 2009-10-26  
vim 就是配置起来麻烦点,这个上面有专题文章...
http://easwy.com/blog/
44 楼 sinoyster 2009-10-26  
qgymje 写道
如何用vim连接到ftp服务器上,并且在线编辑文件呢?最好是有连接的一个表,类似于nerd tree,有这样一个Plugin么?


linux下用curlftpfs把ftp映射为本地目录

相关推荐

    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