2013-07-10 95 views
0

我在使用omnicppcomplete與vim時遇到問題。其實,我不確定它是一個.vimrc問題還是一個omnicppcomplete問題。在我的.vimrc,我有這個命令來爲我的項目的標籤,當我按Ctrl + F12:Vim鍵映射錯誤

map <C-F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR> 

但它失敗,此錯誤:

ctags: Unknown option: --c++-n 

shell returned 1 

這似乎很奇怪,我因爲我不在命令中使用--C++ - n選項。什麼是更奇怪,我是說如果我只是在我的終端

ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q 

手動運行該命令它會產生一個標籤文件,一切似乎工作得很好。因此,將它映射到一個關鍵的東西就是搞砸了。我按照wiki上的說明操作:http://vim.wikia.com/wiki/C%2B%2B_code_completion

我很困惑爲什麼它會抱怨--C++ - n當我不使用它。任何幫助深表感謝。

編輯:

兩者 「:其C標籤」 在vim和 「的C標籤」 在shell回報 「的/ usr/bin中/ CTAGS」。但是,當我執行「ls/usr/bin | grep ctags」時,它會同時返回「ctags」和「ctags-exuberant」。

我刪除並重新安裝了ctags-exuberant。現在,當我嘗試在vim中使用c-F12時,它不會給我一個命令上的錯誤......它將我帶回到shell中以按Enter繼續,但在代碼中,當我在對象,它仍然會顯示「未找到模式」。

但是,如果我做這樣一個小的測試文件中的一個單獨的目錄:

struct MyStruct { 
    int a; 
    int b; 
    int long_name; 
}; 

int main(int argc, char** argv) { 

    MyStruct a; 
    a.  
} 

命中C-F12構建標記列表,自動完成的作品就好了......我希望它如果我有一個在另一個文件中定義的類(儘管在同一目錄中),則工作。

回答

1

我重新安裝了繁重的ctags,問題已解決。

4

問題不是關鍵映射。如果我將你的映射行復制到我的.vimrc並在gvim中按下ctrl-f12,它會迴應它運行的命令,這正是上面的命令。

難道是在vim中,01​​是另一個文件/可執行文件嗎? :!which ctags在vim中說什麼,which ctags在shell中說什麼?

+1

我的猜測是繁盛的ctags vs正常的ctags – FDinoff

+0

感謝您的反饋。我根據你的要求更新了我的答案。 – Sterling