Vundle插件管理工具
1.1、簡介
Vundle(https://github.com/VundleVim/Vundle.vim)的全稱是Vim Bundle,它是一款Vim插件管理工具。Vundle讓你可以非常輕松地安裝、更新、搜索和清理Vim插件。它還能管理你的運行時環境,並幫助標記
1.2、安裝
安裝Vundle首先需要Git的支持,如果沒有GIt請先安裝Git。先創建一個目錄,將Vim插件下載后將安裝到該目錄下。默認情況下,該目錄位於~/.vim/bundle
$ mkdir -p ~/.vim/bundle
$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
1.3、配置
現在設置你的.vimrc文件,如下所示:
set nocompatible " 這是必需的 filetype off " 這是必需的
"你在此設置運行時路徑 set rtp+=~/.vim/bundle/Vundle.vim
" vundle初始化 call vundle#begin()
"這應該始終是第一個 Plugin 'gmarik/Vundle.vim'
"該例子來自https://github.com/gmarik/Vundle.vim README Plugin 'tpope/vim-fugitive'
"來自http://vim-scripts.org/vim/scripts.html的插件 Plugin 'L9'
"未托管在GitHub上的Git插件 Plugin 'git://git.wincent.com/command-t.git'
"本地機器上的git軟件庫(即編寫自己的插件時) Plugin 'file:///home/gmarik/path/to/plugin'
" sparkup vim腳本在名為vim的該軟件庫子目錄下。 "傳遞路徑,合理設置運行時路徑。 Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
"與L9避免名稱沖突 Plugin 'user/L9', {'name': 'newL9'}
"每個插件都應該在這一行之前
call vundle#end() " required |
以上紅色部分為示例。默認情況下,Vundle從github.com或vim-scripts.org下載並安裝Vim插件。你可以修改默認行為。
(1)從Github進行安裝:
Plugin 'user/plugin'
(2)從http://vim-scripts.org/vim/scripts.html進行安裝:
Plugin 'plugin_name'
(3)從另一個git軟件庫進行安裝:
Plugin 'git://git.another_repo.com/plugin'
(4)從本地文件進行安裝:
Plugin 'file:///home/user/path/to/plugin'
(5)你還可以定制其他參數,比如插件的運行時路徑,如果你在自行編寫插件,或者就想從不是~/.vim的另一個目錄來裝入它,這非常有用。
Plugin 'rstacruz/sparkup', {'rtp': 'another_vim_path/'}
(6)如果你有同樣名稱的插件,可以更名插件,那樣它就不會沖突。
Plugin 'user/plugin', {'name': 'newPlugin'}
1.4、命令
:BundleList -列舉出列表中(.vimrc中)配置的所有插件
:BundleInstall -安裝列表中全部插件
:BundleInstall! -更新列表中全部插件
:BundleSearch foo -查找foo插件
:BundleSearch! foo -刷新foo插件緩存
:BundleClean -清除列表中沒有的插件
:BundleClean! -清除列表中沒有的插件
當在配置文件 ~/.vimrc 添加新的插件以后,需要運行以下命令來進行插件安裝,安裝完成以后就可以用了。
BundleInstall
2、SuperTab插件-Tab鍵補全
2.1、簡介
SuperTab使Tab快捷鍵具有更快捷的上下文提示功能,也就是一種自動補全插件,我們習慣於IDE的第一個原因就是它的自動補全功能。
2.2、安裝
2.2.1使用Vundle安裝(推薦)
在~/.vimrc配置文件中添加如下插件配置:
Bundle 'SuperTab'
然后在Vim中運行 :BundleInstall 等待安裝完成。
2.2.1使用Git安裝
使用Git下載插件supertab。
git https://github.com/ervandew/supertab
如果使用Vundle需要把下載的vim文件放到 ~/.vim/bundle 下面。
如果不使用Vundle需要把下載的vim文件放到 ~/.vim/plugin 下面。
2.2、配置
配置項可選:
在~/.vimrc中添加以下配置
(1)let g:SuperTabRetainCompletionType=2
該參數的說明如下:
0 - 不記錄上次的補全方式
1 - 記住上次的補全方式,直到用其他的補全命令改變它
2 - 記住上次的補全方式,直到按ESC退出插入模式為止
(2)let g:SuperTabDefaultCompletionType=""
該參數的說明如下:設置按下后默認的補全方式, 默認是, 現在改為. 關於的補全方式,
還有其他的補全方式, 你可以看看下面的一些幫助:
:help ins-completion
:help compl-omn
3、syntastic插件-語法檢查功能
3.1、簡介
syntastic是一個代碼檢查的插件.
3.2、安裝
通過Vundle安裝它, 在.vimrc中添加:
Bundle "scrooloose/syntastic"
重新打開Vim, 執行:
:BundleInstall
即可完成安裝。
3.3、配置
因為Python已經有pylint來檢查, 而且syntastic檢查Python會在保存時有很長時間的卡頓, 所以禁用它對Python文件的檢查
4、NERDTree插件-文件系統瀏覽功能
4.1、簡介
nerdtree樹形目錄插件能夠在vim下瀏覽文件系統的所有文件,並能夠打開文件。同時可以通過配置nerdtree過濾一些文件不被樹形結構瀏覽。
4.2、安裝
通過Vundle安裝它, 在.vimrc中添加:
Bundle 'scrooloose/nerdtree'
重新打開Vim, 執行:
:BundleInstall
即可完成安裝。
4.3、使用
在linux命令行界面,用vim打開文件后,輸入:NERDTree ,回車。
進入當前目錄的樹形界面,通過小鍵盤"上下"鍵,能移動選中的目錄或文件。目錄前面有"+"號,按Enter會展開目錄,文件前面是"-"號,按Enter會在右側窗口展現該文件的內容,並光標的焦點focus右側。"ctr+w+h"光標focus左側樹形目錄,"ctrl+w+l"光標focus右側文件顯示窗口。多次按"ctrl+w",光標自動在左右側窗口切換。光標focus左側樹形窗口,按"?"彈出NERDTree的幫助,再次按"?"關閉幫助顯示。輸入":q"回車,關閉光標所在窗口。
NERDTree提供了豐富的鍵盤操作方式來瀏覽和打開文件,介紹一些常用的快捷鍵:
和編輯文件一樣,通過h j k l移動光標定位
打開關閉文件或者目錄,如果是文件的話,光標出現在打開的文件中
go 效果同上,不過光標保持在文件目錄里,類似預覽文件內容的功能
i和s可以水平分割或縱向分割窗口打開文件,前面加g類似go的功能
t 在標簽頁中打開
T 在后台標簽頁中打開
p 到上層目錄
P 到根目錄
K 到同目錄第一個節點
J 到同目錄最后一個節點
m 顯示文件系統菜單(添加、刪除、移動操作)
? 幫助
q 關閉
4、ctags插件-代碼閱讀的工具
4.1、簡介
ctags(Generate tag files for source code)是vim下方便代碼閱讀的工具。盡管ctags也可以支持其它編輯器,但是它正式支持的只有VIM。ctags為源碼的變量/對象、結構體/類、函數/接口、宏等產生索引文件,以便快速定位。目前支持41種語言,這里僅以C/C++為例:ctags可以產生c/c++語言所有類型的索引文件
4.2、安裝
(1)可以直接使用yum命令安裝:
sudo yum install ctags
(2)手動安裝
下載地址
Official site: http://ctags.sourceforge.net/
VIM online: http://www.vim.org/scripts/script.php?script_id=610
參考步驟(以5.8版本ctags-5.8.tar.gz為例)
解壓后
$ cd ctags-5.8
$ ./configure
$ make
# make install
安裝結束后,使用ctags命令測試是否成功
或whatis ctags, whereis ctags等
4.3、使用
安裝成功后,要為源碼文件生成tags文件,才可享受ctags為閱讀代碼帶來的便利。
$ ctags -R --c++-kinds=+px --fields=+iaS --extra=+q ./src ./include /usr/include/ /usr/local/include/
l -R: 循環生成子目錄的 tags l *: 當前目錄下的所有文件,不遞歸 l –c++-kinds=+px : 記錄 c++ 文件中的函數聲明和各種外部和前向聲明 l –fields=+iaS : ctags 要求描述的信息,其中i表示如果有繼承,則標識出父類;a 表示如果元素是類成員的話,要標明其調用權限(即是 public 還是 private);S 表示如果是函數,則標識函數的 signature。 l –extra=+q: 強制要求ctags做如下操作—如果某個語法元素是類的一個成員,ctags默認會給其記錄一行,可以要求ctags對同一個語法元素再記一行,這樣可以保證在VIM中多個同名函數可以通過路徑不同來區分。 |
遞歸的為當前目錄及子目錄下的所有代碼文件生成tags文件
在vim打開源碼時,指定tags文件,才可正常使用,通常手動指定,在vim命令行輸入:
:set tags=./tags (當前路徑下的tags文件)
若要引用多個不同目錄的tags文件,可以用逗號隔開,或者,設置 ~/.vimrc,加入一行,則不用手動設置tags路徑:
set tags=~/path/tags
移動光標閱讀文件,對於不明白的變量或者函數,移動光標到其位置,Ctrl+] 跳轉到函數或者變量定義的地方,Ctrl+o返回。