作者dryman (dryman)
看板Linux
標題Re: [問題]有關 Vim 的 OmniCppComplete 的問題…
時間Wed Dec 9 09:34:57 2009
※ 引述《zushenyan (zushen)》之銘言:
: 其實我也不知道要發在哪個版,看來看去只有這個版跟 Vim 最有關係,就貼在這;
: 如有不妥請告知我會自d,感謝。
: [問題一]
: Vim 的 OmniCppComplete 補全 std:: 相關的東西都…怪怪的。
: 例如我想要
: std::cout
: 結果一打
: std::c
: 會自動噴出一堆與 cout 無關的函式,不過就是沒有 cout, string, vector
: 這些標準函式庫的東西。
: 我想要他自動補齊 std 的東西呀...
你想要std的話,還需要這個東西:tags for std c++
http://www.vim.org/scripts/script.php?script_id=2358
這是一個header file
用ctags來生成一個tag檔,這樣你就有一個stl的tag file了
然後在你的.vimrc中設定載入額外的ctag
就可以autocomplete stl囉
: 我想在 .cpp 檔裡實作 .h 的類別時,會出現這種問題:
: ======Object.h======
: class Object{
: public:
: Object();
: void foo();
: };
: ====================
: ======Object.cpp====
: #include <Object.h>
: Object:: //當我打出範圍運算子時 OmniCppComplete 什麼都沒找到。
: void Object:: //同上
: ====================
你存好Object.h後有跑ctags嗎?
我跑這個完全沒問題耶@ @
另外推薦一個plugin:
autoComplPop
他可以讓你邊打程式碼邊跳出自動完成的視窗
不過預設會跳出來的自動完成太多了(像我預設還有載入dictionary,超恐怖)
你可以在.vimrc中設定
let g:acp_completeOption = '.,t,i,b'
像這樣的話就是會從
. current buffer
t tags
i include headers
b buffers(像是其他視窗、未顯示出來的buffer等等)
不同的選項你可以按:h complete 去查
========================================
順便廣告一下::c9s vim 講座!!
http://whoswho.openfoundry.org/workshop/details/67
講師當然是c9s大
12/19(sat) 18:50
台北市中正區公園路30號3F
再廣告一下XD
最近正在籌劃Editor版,想徵副版主來處理emacs的部份
我是確定要去申請開版了(只要遞交申請書,無須連署)
申請書中包括版規、獎懲規範、精華區初步規劃、開版理由等等
不過這禮拜我有三個考試兩個作業一個專題實驗..<囧>
所以大概下禮拜才會把東西確定好交出去,大家敬請期待啦
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.234
※ 編輯: dryman 來自: 140.112.4.234 (12/09 09:40)
推 verysamuel:推!!! 12/09 10:29
推 zushenyan:第一問題已解決,感謝!問題是第二個... 12/09 12:40
→ zushenyan:我在 vimrc 有加每寫入 .h .cpp .c 檔就自動生成 tag 12/09 12:41
→ zushenyan: au BufWritePost *.c,*.cpp,*.h silent! (接下行) 12/09 12:42
→ zushenyan:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q 12/09 12:42
→ zushenyan:--language-force=C++ 12/09 12:43
→ zushenyan:實作時 OmniCppComplete 仍是不理我...:( 12/09 12:43
→ dryman:那你的tag有load進來嗎?透過taglist的plugin能看到嗎? 12/09 13:53
推 kornelius:謝謝捧場 :-) 12/09 14:02
推 maxwellee:乾麵大厲害 12/09 14:53