• [转]vim ruby等的ide设置


    使用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 
    320
    drwxr
    -xr-x  2 paul paul   4096 2011-07-26 12:20 .
    drwxr
    -xr-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目录下建立一个.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
    =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/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可以按照目录结构来查找文件。最有用的是,可以在已经打开的文件中来回切换,对于经常打开十几个文件同时编辑的程序员来说,非常有用。

    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

  • 相关阅读:
    在vue项目中使用live2d
    关于iview下拉菜单无法添加点击事件的解决办法
    简单理解undefine和null的区别
    228. Summary Ranges
    (剧本一则)趁你还年少
    论文阅读 | Improving Neural Conversational Models with Entropy-Based Data Filtering
    论文阅读 | Persuasion for Good: Towards a Personalized Persuasive Dialogue System for Social Good
    论文阅读 | Target-Guided Open-Domain Conversation
    论文阅读 | Multimodal Transformer Networks for End-to-End Video-Grounded Dialogue Systems
    论文阅读 | Observing Dialogue in Therapy: Categorizing and Forecasting Behavioral Codes
  • 原文地址:https://www.cnblogs.com/pengzhiwei/p/3322094.html
Copyright © 2020-2023  润新知