posts - 262,  comments - 221,  trackbacks - 0
          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開發的一大神器,內置了對很多語言的代碼片段的支持??梢宰约号渲谩E渲梦募挥趡/.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



          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2011-07-26 12:46 Paul Lin 閱讀(3419) 評論(0)  編輯  收藏 所屬分類: RoR
          <2011年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洪江市| 海城市| 句容市| 芒康县| 霍邱县| 墨玉县| 东至县| 云梦县| 贡嘎县| 西乌| 怀集县| 墨玉县| 铜川市| 德惠市| 诸暨市| 定兴县| 葫芦岛市| 郓城县| 剑河县| 丰城市| 诸暨市| 稷山县| 本溪| 西峡县| 高唐县| 定州市| 衡东县| 高阳县| 鹤峰县| 土默特右旗| 包头市| 阳新县| 革吉县| 敖汉旗| 南康市| 启东市| 石台县| 仙游县| 嵊州市| 富裕县| 松阳县|