[問題]有關 Vim 的 OmniCppComplete 的問題…
其實我也不知道要發在哪個版,看來看去只有這個版跟 Vim 最有關係,就貼在這;
如有不妥請告知我會自d,感謝。
[問題一]
Vim 的 OmniCppComplete 補全 std:: 相關的東西都…怪怪的。
例如我想要
std::cout
結果一打
std::c
會自動噴出一堆與 cout 無關的函式,不過就是沒有 cout, string, vector
這些標準函式庫的東西。
我想要他自動補齊 std 的東西呀...
[問題二]
我想在 .cpp 檔裡實作 .h 的類別時,會出現這種問題:
======Object.h======
class Object{
public:
Object();
void foo();
};
====================
======Object.cpp====
#include <Object.h>
Object:: //當我打出範圍運算子時 OmniCppComplete 什麼都沒找到。
void Object:: //同上
====================
Vim 不會自動跳出建構子或函式來,這樣實作時滿不方便的,
雖然有 a.vim 這好物,但我希望更無腦一點。
[環境配置]
OS >> Mac OS X Snow Leopard 10.6.2
Vim >> Vim Version 7.2 (用 Mac 自帶版的)
OmniCpp>> OmniCppComplete 0.41
ctags >> Exuberant Ctags 5.8
生成 tag 是用指令 ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
產生 /usr/inculde/c++/4.2.1/ 路徑下的 tag,然後放到 ~/.vim/tags/ 下改名為 cpp。
vimrc 擷取部分:
set tags+=~/.vim/tags/cpp
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
set completeopt=menuone,longest,preview
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
au BufWritePost *.c,*.cpp,*.h silent! !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
請問版上有同樣使用者愈過類似問題嗎?
不然現在寫個小測試還要開 Eclipse CDT 編輯再跳去
Terminal compile link 真的有點小繁瑣…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.242.14
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):