使用vim作rails開發,推薦這個 https://github.com/carlhuda/janusphp
1. vim下的Rails經常使用插件 java
首先列出我比較經常使用的vim插件,基本都是網上提到的哪些。必備的有:
NERDTree.vim:顯示目錄樹和標籤(特別有用)
Rails.vim:這個不說了,Rails開發必備
Snipmate.vim:代碼片斷自動完成,Rails開發神器之一
FuzzyFinder.vim:模糊查找,使用頻率最高的插件之一
TabBar:BufferExpoloer的加強版,用來標識打開的文件的
Supertab.vim:文本自動完成
Rubytest.vim:vim下的集成測試工具
下面是完整的列表
git
paul@RoR
:~
$ ls
-
la
~/.
vim
/
plugin
/
total
320
drwxr
-
xr
-
x
2
paul paul
4096
2011
-
07
-
26
12
:
20
.
drwxr
-
xr
-
x
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中已經存在的文本自動匹配聯想)
github
"
設置SuperTab
let g:SuperTabRetainCompletionType=
"
context
"
注意SnipMate和SuperTab會有衝突:二者一樣都使用Tab鍵做爲補全。本人測試的結果是Ruby語法能夠自動補齊,可是HTML文件不行。比較遺憾,尚未找到解決方案
5. 使用FuzzyFinder
FuzzyFinder的出現,基本知足了我在vim中像Eclipse同樣使用Ctrl+Alt+O查找打開文件的願望了。並且FuzzyFinder提供了不少種模糊查找的方式。比較經常使用的有按照已標籤的文件,按照文件的名稱,按照Buffer中打開的文件。具體的配置以下:
vim
"
設置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參數來格式化輸出
ruby
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=1488ui
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