Linux環境下寫代碼雖然沒有IDE,但通過給vim配置幾個插件也足夠好用。一般常用的插件主要包括幾類,查找文件,查找符號的定義或者聲明(函數,變數等)以及自動補全功能。一般流程都是下載需要的工具,然後在vimrc文件中配置載入工具選項,一直這麼用也沒覺得啥。但最近發現通過vundle工具可以很方便 ...
Linux環境下寫代碼雖然沒有IDE,但通過給vim配置幾個插件也足夠好用。一般常用的插件主要包括幾類,查找文件,查找符號的定義或者聲明(函數,變數等)以及自動補全功能。一般流程都是下載需要的工具,然後在vimrc文件中配置載入工具選項,一直這麼用也沒覺得啥。但最近發現通過vundle工具可以很方便的管理多個插件,非常方便,介紹給大家。
1.安裝vim
./configure --prefix=/usr \ --with-features=huge \ --enable-pythoninterp \ --enable-rubyinterp --enable-luainterp \ --enable-multibyte --enable-sniff --enable-fontset \ --with-features=huge \ --enable-pythoninterp \ --enable-rubyinterp \ --enable-luainterp \ --enable-multibyte \ --enable-sniff \ --enable-cscope make sudo make install
2.安裝配置vundle
(1).vundle代碼全部托管在git上,首先下載源碼
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
(2).配置.vimrc文件
set rtp+=~/.vim/bundle/vundle/ call vundle#rc() Bundle 'gmarik/vundle' Bundle 'Valloric/YouCompleteMe' Bundle 'ctrlpvim/ctrlp.vim'
每個Bundle聲明一個要用Vundle安裝的插件,上面的內容配置了插件YouCompleteMe和ctrlp.vim。
(3).使用vundle
通過命令:BundleList可以查看我們配置的插件,通過命令:BundleInstall,可以安裝所有BundleList顯示的插件,這個過程是全部由vundle代勞。如果需要刪除插件,先在~/.vimrc中移除插件聲明,然後執行命令:BundleClean即可。vundle管理插件的命令如下:
:BundleList -列舉出列表中(.vimrc中)配置的所有插件
:BundleInstall -安裝列表中全部插件
:BundleInstall! -更新列表中全部插件
:BundleSearch foo -查找foo插件
:BundleClean -清除列表中沒有的插件
3.配置cscope/ctags/taglist
(1).安裝配置Ctags
下載源碼安裝,在源碼目錄通過命令ctags -R * 生成索引文件,如果只針對部分文件類型,可以先通過find命令輸出文件列表,然後通過ctags -L參數來生成標簽,比如:
find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.ic" > tags.files ctags -L tags.files
(2).安裝配置Taglist
Taglist依賴於ctags,實質只包含幾個配置文件,將taglist.txt和taglist.vim拷貝到指定目錄
$cd taglist/ $cp doc/taglist.txt ~/.vim/doc $cp plugin/taglist.vim ~/.vim/plugin/
(3).關聯ctags和taglist
在.vimrc中加入如下代碼:
let Tlist_Ctags_Cmd="/usr/bin/ctags"
vim中執行:Tlist可以在tag列表則表示安裝ok了。
(4).安裝配置cscope
find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.ic" > cscope.files cscope -bkq -i cscope.files
-R: 在生成索引文件時,搜索子目錄樹中的代碼
-b: 只生成索引文件,不進入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件時,不搜索/usr/include目錄
(5).常用快捷鍵
cs add path/cscope.out (載入cscope索引文件) cs find c|d|e|f|g|i|s|t name
s: 查找C語言符號,即查找函數名、巨集、枚舉值等出現的地方
g: 查找函數、巨集、枚舉等定義的位置,類似ctags所提供的功能
t: 查找指定的字元串
e: 查找egrep模式,相當於egrep功能,但查找速度快多了
d: 查找本函數調用的函數
c: 查找調用本函數的函數
f: 查找並打開文件,類似vim的find功能
i: 查找包含本文件的文件
(6).設置快捷鍵映射
nmap ffs :cs find s <C-R>=expand("<cword>")<CR><CR> nmap ffg :cs find g <C-R>=expand("<cword>")<CR><CR> nmap fft :cs find t <C-R>=expand("<cword>")<CR><CR> nmap ffe :cs find e <C-R>=expand("<cword>")<CR><CR>
4.vim常用的快捷鍵
(1)跳轉
% 跳轉到相配對的括弧
$ 跳轉至行尾
0 數字0,跳轉至行首
[] 跳往上一個函數的結束大括弧 (在函數中間時,調到函數頭)
][ 跳往下一個函數的結束大括弧 (在函數中間時,調到函數尾)
ctrl+b 向後翻一頁
ctrl+f 向前翻一頁
gg 跳轉到文件頭
GG 跳轉到文件尾
(2).編輯
set cursorline (顯示橫線,方便看清楚在哪一行)
set shiftwidth=2 (塊操作,選中塊,按下>表示向右移動2列,按下<表示向左移動2列)
Ndd (N為數字,表示刪除N行,類似剪切功能)
Nyy (N為數字,表示覆制N行)
(3).多標簽
:vsplit (垂直切分視窗,可以參考代碼)
ctrl+w (視窗切換)
(4).常用快捷鍵
Ngt (切換到第幾個標簽)
:tabc (關閉當前的tab)
:tabo (關閉所有其他的tab)
:tablast (最後一個tab)
:tabfirst (第一個tab)
:tabnext (下一個tab)
:tabpre (上一個tab)
gt,gT (在tab之間切換)
(5).快捷鍵映射
nmap ff1 1gt nmap ff2 2gt nmap ff3 3gt nmap ff4 4gt nmap ff5 5gt nmap ff6 6gt nmap ff7 7gt nmap ff8 8gt nmap ff9 9gt nmap ffc :tabc<CR> nmap ffo :tabo<CR> nmap fff :tabfirst<CR> nmap ffl :tablast<CR> nmap ffn :tabnext<CR> nmap ffp :tabpre<CR>
(6).其它
:so ~/.vimrc (動態載入vimrc修改)
:shell (vim與shell切換)
:exit (返回vim)