vim是個很強大的文本編輯器,不僅是因為它能讓我們完全拋棄使用鍵盤,而且擁有強大的擴展性,可以添加任何各種各樣的插件.只要你所想到的,基本能在網(wǎng)上找到想對應(yīng)的插件.
Vundle
Vundle是vim上的插件管理器.只需要在.vimrc
添加上控件名,Vundle可以幫我們下載到插件文件夾/Users/{username}/.vim/bundle
中.
有一個vim插件的資源網(wǎng)站,可以在那里搜索:vim scripts
clone Vundle ,在輸入一下命令
cd ~/.vim/bundle
git clone https://github.com/VundleVim/Vundle.vim.git輸入
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim-
修改配置文件
.vimrc
set nocompatible
filetype offset rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " 從這里開始,end之前.添加你想要的插件,可以從本地,github,git,Vim Scripts中加載插件" Plugin 'VundleVim/Vundle.vim' Plugin 'tpope/vim-fugitive' Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} call vundle#end() " required filetype plugin indent on " required " 然后這里開始添加vim的其他配置
添加插件之后(w保存),你可以使用PluginList
查看當(dāng)前配置中的插件列表
每當(dāng)添加新的控件之后都要執(zhí)行
PluginInstall
安裝插件
其他常用命令
:BundleList -列舉列表(也就是.vimrc)中配置的所有插件
:BundleInstall -安裝列表中的全部插件
:BundleInstall! -更新列表中的全部插件
:BundleSearch foo -查找foo插件
:BundleSearch! foo -刷新foo插件緩存
:BundleClean -清除列表中沒有的插件
:BundleClean! -清除列表中沒有的插件
EasyMotion
高級的vim移動方式.
可以幫助你跳轉(zhuǎn)到特定的單詞中,而不必一個一個數(shù)要向前或向后跳多少個單詞.
主要有兩個用途:
- 跳轉(zhuǎn)某個特定單詞.
- 跳轉(zhuǎn)某一特定的行.
安裝:
Plugin 'EasyMotion'
設(shè)置
let g:EasyMotion_leader_key = '{keyword}'
我將快捷鍵綁定為大寫W
,假如我跳轉(zhuǎn)到后面的單詞,敲鍵盤W
和w,會顯示多個選項.
讓后根據(jù)提示輸入對應(yīng)字母就能跳轉(zhuǎn)到其單詞.
如果碰到當(dāng)前超過48個單詞,則會有一些相同的字母,輸入之后.會跳轉(zhuǎn)到第一個并從新生成字母索引.
neocomplcache
自動補全插件,與此類似還有另外一個插件autocomplete.autocomplete對ruby的支持很差,經(jīng)澄缢ィ卡死.
這個版本是帶緩存版本.
安裝:
Plugin `neocomplcache`
設(shè)置:
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_min_keyword_length = 3 " 從第三個字符開始語法提示
let g:neocomplcache_enable_smart_case = 1" 區(qū)分大小寫
為了保險起見,在配置完成之后需要在vim中輸入一下命令NeoComplCacheEnable
特別地,針對ruby,還需要一下配置
autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete
if !exists('g:neocomplcache_force_omni_patterns')
let g:neocomplcache_force_omni_patterns = {}
endif
let g:neocomplcache_force_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
Syntastic
語法審核和語法錯誤提示.這個可以實時檢測語法并可以高亮其錯誤.插件本身不自帶語法檢查器,其中一部分利用系統(tǒng)的檢查器,其他的需要自己下載.
安裝
Plugin 'Syntastic'
配置
set statusline+=%#warningmsg# " 狀態(tài)欄警告信息
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
" 語法分析
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1 " 自動顯示錯誤信息,無錯誤時隱藏
let g:syntastic_check_on_open = 1 " 打開時檢測
let g:syntastic_check_on_wq = 1 " 保存時檢查
let g:syntastic_ruby_exec = 'ruby' // 設(shè)置ruby檢查器
let g:syntastic_rb_checker = 'mri' " 設(shè)置rb格式檢查器為mri
vim - powerline
使用與vim的一個更加酷炫的狀態(tài)欄
安裝
這個插件并沒有托管在vim scripts上,所以直接從github下載
Plugin 'https://github.com/Lokaltog/vim-powerline.git'
配置
set nocompatible " 不向下兼容
set laststatus=2 " Always show the statusline
set encoding=utf-8 " Necessary to show Unicode glyphs
let g:Powerline_symbols = 'unicode'
let g:Powerline_colorscheme = 'solarized256'
let g:Powerline_stl_path_style = 'short'
set t_Co=256
nerdtree
nrdtree可以在當(dāng)前vim中分割一個小窗口查看文件目錄,如果我們在ruby或python的項目中使用vim,可能需要頻繁得打開很多文件.需要查看文件目錄查找文件.
打開時默認(rèn)打開當(dāng)前文件所在的目錄.
安裝
Plugin 'The-NERD-tree'
配置
" 如果當(dāng)前沒文件時,自動打開
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
map <C-n> :NERDTreeToggle<CR> " 映射`ctrl+c`快捷鍵
let g:nerdtree_tabs_smart_startup_focus = 1
let NERDTreeAutoCenter=1 " nerdtree 光標(biāo)所在的位置默認(rèn)在窗口中間
let NERDTreeWinPos = 'right' " nerdtree 窗口顯示在右邊
cocoa.vim
vim下的cocoa擴展.官方文檔cocoa.vim
主要特性:
- 增強代碼高亮
- xcode式快捷鍵--?R 編譯和運行, ?0切換項目窗口(只在GUI界面生效)
- 在
.m
文件中輸入:ListMethods
命令可以顯示文件夾的方法列表 - 在
.m
文件中輸入:BuildMethods
命令可以在.h
文件中生成對應(yīng)的聲明方法 - 輸入
:CocoaDoc
命令查看文檔
使用vim自帶的高亮:
使用cocoa.vim中的高亮,增強不多,但聊勝于無:
安裝:
Plugin 'cocoa.vim'
配置文件
文件地址下載: .vimrc