使用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下的集成测试工具

下面是完整的列表

paul@RoR:~$ ls -la ~/.vim/plugin/
total 
drwxr .
drwxr ..
 autoclose.vim
 color_sample_pack.vim
 fuf.vim
 l9.vim
 NERD_tree.vim
 rails.vim
 rubytest.vim
 ScrollColor.vim
 snipMate.vim
 supertab.vim
 surround.vim
 tabbar.vim

2. .vimrc配置文件

在home目录下建立一个.vimrc文件,用于配置vim各种插件

" 启动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  

" 设置文件编码  
  set fenc=utf-8  

" 设置文件编码检测类型及支持格式  
  set fencs,ucs-bom,gb18030,gbk,gb2312,cp936  

" 设置开启语法高亮  
  syntax on  

" 显示行号  
  set number  

" 高亮显示匹配的括号
  set showmatch

" 搜索忽略大小写
  set ignorecase  

" 查找结果高亮度显示  
  set hlsearch
  set incsearch

" tab宽度  
  set tabstop  
  set cindent shiftwidth  
  set autoindent shiftwidth  
  
" 命令行下按tab键自动完成
  set wildmode=list:full
  set wildmenu

" 设置默认的颜色
  colorscheme darkblue
  
" 带有如下符号的单词不要被换行分割
  set iskeyword+=_,$,@,%,#,-
  
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
  set report
  
" 可以在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/snippets目录下。SuperTab同样也可以用于自动完成,它主要用于文本方面的自动完成,SuperTab有几种自动完成模式,通常比较常用的是“context”模式
--- 即上下文联想方式(根据Buffer中已经存在的文本自动匹配联想)

" 设置SuperTab
  let g:SuperTabRetainCompletionType="context"

注意SnipMate和SuperTab会有冲突:两者同样都使用Tab键作为补全。本人测试的结果是Ruby语法可以自动补齐,但是HTML文件不行。比较遗憾,还没有找到解决方案

5. 使用FuzzyFinder

FuzzyFinder的出现,基本满足了我在vim中像Eclipse一样使用Ctrl+Alt+O查找打开文件的愿望了。而且FuzzyFinder提供了很多种模糊查找的方式。比较常用的有按照已标签的文件,按照文件的名称,按照Buffer中打开的文件。具体的配置如下:

" 设置FuzzyFinder
  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参数来格式化输出

  let g:rubytest_cmd_spec = "rspec -fd %p"

注意:运行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

[转]vim ruby等的ide设置的更多相关文章

  1. 【转】手把手教你把Vim改装成一个IDE编程环境(图文)

    手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage ...

  2. Vim配置及说明——IDE编程环境

    Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...

  3. vim搭建C编程IDE

    曾经在一篇关于vim技巧的文章里有一句话:"世界上只有三种编辑器,EMACS.VIM和其它." 我不知道这是不是太过于绝对了,但是从我所看到的每一篇linux下编程以及文字编辑的文 ...

  4. Use Vim as a Python IDE

    Use Vim as a Python IDE I love vim and often use it to write Python code. Here are some useful plugi ...

  5. win7+vim搭建+verilog HDL IDE

    参考地址:http://www.huangdc.com/421 参考文章为2016年,部分更新贴于文章内了 安装下载vim vim在win下叫gvim,下载地址:https://www.vim.org ...

  6. VIM 打造 c/c++ IDE

    1. vim 的安装 $sudo apt-get install vim vim-scripts vim-doc <br> 其中vim-scripts包含了vim的一些基本插件,包括语法高 ...

  7. Vim改装成一个IDE编程环境

      1 写在前面   Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个 ...

  8. 04-手把手教你把Vim改装成一个IDE编程环境(图文)

    Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重 ...

  9. 把vim当做golang的IDE

    开始决定丢弃鼠标,所以准备用vim了. 那么在vim里面如何搭建golang环境呢? git盛行之下,搭建vim环境是如此简单. 而且vim搭建好了之后,基本上跟IDE没有差别. 高亮.自动补全.自动 ...

随机推荐

  1. iOS 非ARC基本内存管理系列 5-autorelease方法使用总结

    autorelase:可以将对象交给自动释放池中,释放池销毁的时候对里面的对象做一次release操作代码如下 @autoreleasepool { Person *person = [[[Perso ...

  2. node.js:怎样同时执行多条SQLs,且只有一个回调

    本文主要介绍开源node.js库mysql-queries,其可以同时执行多条SQLs,且只有一个回调.同时抛砖引玉,与大家交流node.js开发经验. node.js很大的特点就是事件驱动.非阻塞和 ...

  3. google其他入口地址

    http://178.45.251.74/ http://64.233.166.51/ http://61.19.1.117/ http://64.233.166.42/ http://61.19.1 ...

  4. C中浮点数转字符串

    求浮点数转换成字符串,如何才能获得比较正确的字符串.用printf("%f\n", (float)5); 这种方式转换出来的结果是 5.000000 ,末尾都会带6位小数. 控制精 ...

  5. Device eth0 does not seem to be present

    解决办法: 首先,打开/etc/udev/rules.d/70-persistent-net.rules内容如下面例子所示: # vi /etc/udev/rules.d/70-persistent- ...

  6. 【BZOJ 2005】[Noi2010]能量采集

    Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得 ...

  7. 微软职位内部推荐-Senior SDE for Cloud Platform

    微软近期Open的职位: Microsoft Launched the public cloud service-Azure in China on May 2013, Cosmos is the k ...

  8. mysql 获取季度的第一天 本月的第一天,本周的第一天sql语句(转)

    感谢:http://www.111cn.net/database/110/d45124323da8d2d87b80f78319987eda.htm 查看同主题的另一篇博客:http://blog.cs ...

  9. BZOJ 4146 [AMPPZ2014] Divisors 解题报告

    这个题感觉比较小清新... 我们记录每个数出现的次数 $T_i$. 首先依次枚举每个数字,令 $ans = ans + T_i \times (T_i - 1)$,然后枚举这个数的倍数,令 $ans ...

  10. Recommender Systems基于内容的推荐

    基于内容的推荐的基本推荐思路是:用户喜欢幻想小说,这本书是幻想小说,则用户有可能喜欢这本小说 两方面要求:(1)知道用户的喜好:(2)知道物品的属性 基于内容的推荐相比协同过滤方法(个人观点):协同过 ...