天天看點

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

一、auto.vim

節省時間的vim程式設計plugin,自動檢測你的目前代碼,無論是C/C++/Perl/Python/Ruby/Shell. 使用F2鍵或者快速敲擊mm,自動編譯執行,有錯誤繼續修改,無錯誤,則調試,另外特地添加了自動格式化代碼的簡單功能,使用标準的代碼排版,簡單實用,當然隻支援GNU/Linux作業系統。

下圖是網絡上找到的效果示範:

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

在 c, cpp, 或者 python,shell,perl 代碼中, 按F2 鍵或 "mm"可以編譯和調試

1.一般模式下

    ;;      Exit without saving 

    ,,      Save and exit 

2.插入模式下

    ;;      return Normal mode 

    ,,      return Normal mode 

    mm      return Normal mode 

    <Alt-j>  Down 

    <Alt-k> Up 

    <Alt-h> Left 

    <Alt-l>  Right 

3.當你寫c, cpp ,... 代碼時, 該代碼會自動被格式化。

    For example:   If you input a==3; 

    auto.vim                             a  ==  3; 

http://www.vim.org/scripts/script.php?script_id=3341

二、code_complete

一大神器。

利用Ctags生成tags檔案(在代碼目錄下運作,遞歸解析目前檔案夾),代碼如下:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
           

 将生成的tags檔案名改成xxx_tags,拷貝至~/.vim/tags目錄中,在~/.vimrc中加入如下代碼:

set tags+=~/.vim/tags/xxx_tags  
           

官網示範版效果示範圖:

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

http://www.vim.org/scripts/script.php?script_id=1764

民間大神示範圖:

注釋

        code_complete插件提供兩種風格的注釋,一種是形式的标準C語言注釋,而另一種是形式的Doxygen風格的用于在一行後進行注釋的文檔注釋(此插件沒有提供自動生成函數文檔注釋的功能,此功能可以使用更專業的插件DoxygenToolkit.vim來實作)。

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete
我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

預處理指令

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

頭檔案包含

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

C語言邏輯結構

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete
我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete
我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete
我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

主函數

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

namespace

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

函數參數補全

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

插件局限性

        通過上面的示範,我們發現了此款插件的一些局限性:

  • 自動補全的代碼風格跟我們使用的不同(上面的例子已經改為我自己代碼風格)。
  • if else結構、switch結構的分支無法手動指定;
  • 使用者自定義函數時,沒有函數模闆可以使用;

插件的擴充可以參考:http://123304258.blog.163.com/blog/static/1235470201211454121724/

經過擴充以後除了stl,cpp函數庫等等的補全,很多補全都有啦。

用法:ife[x]<tab>  在插入模式下輸入ife,後面接else if()的分支個數,然後按<tab>鍵展開。

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

用法:switch[x]<tab>  在插入模式下輸入switch,後面接case的分支個數,然後按<tab>鍵展開。

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

 函數模闆

這個就強大啦!

用法:f[x]<tab>  在插入模式下輸入f,後面接函數參數的個數,然後按<tab>鍵展開。

我的vim插件一、auto.vim二、code_complete三、cvim四、cppcomplete

三、cvim

又是一種神器級的插件。

這個插件,我在 http://blog.csdn.net/ydonghao2/article/details/13507679 中詳細介紹過。

這裡 http://lug.fh-swf.de/vim/vim-c/screenshots-en.html 有一些示範。

這裡需要記住的是:

1)你可以在 ~/.vim/bundle/c-support/templates/Templates中修改c或者cpp的的頭部檔案的注釋說明。(檔案的預設作者,作者的聯系方式等。)

2)大多數的情況都可以用上面的一個插件進行操作了,當時還是有一些情況需要我們用到的。

四、cppcomplete

待續。