2012-05-04 112 views
10

我通常在Vim中編寫我的大多數C項目代碼。我很喜歡導航,搜索和替換,並通過Ctags/Cscope編制索引。Vim - 顯示數據類型

如果可能,我希望有一個功能是一個鍵盤映射,它將在屏幕上的光標下顯示一個變量的數據類型。例如,如果我的光標位於一個變量上,「test123」(即:int test123 = 0)是否有一種方法可以獲得Vim中另一個選項卡中顯示的變量類型(int)和一些其他詳細信息?

另外,有沒有類似的東西會做同樣的結構變量,並顯示其描述選項卡中的所有成員以及類型(即:結構)的列表?我也注意到,有時在編碼時,我在Vim的頂部有一個標題爲「[Scratch] [Preview]」的標籤,似乎滿足這個要求,但我不知道是什麼觸發它(搜索和Ctag搜索似乎沒有觸發它)。它看起來像這樣:

name: myStruct::instanceOfStrct| 2 cmd: /^ int instanceOfStrct;$/ 
.. (up a dir)     | 3 kind: m 
</code/test/test.c    | 4 struct: myStruct 
|+config/      | 5 access: public 
|+lib/       | 6 filename: /code/test/test.c 

我認爲這是一些已經在Vim的存在在一定程度上,但我沒有想法如何與它的工作。

謝謝。

回答

2

我不知道有什麼插件可以做你想做的,但是應該很有可能使用libclang。有一個fork of clang_complete,增加了「定義」功能,這是接近你想要的。然而,該插件的開發似乎停滯不前。

當執行自動填充以提供有關特定完成的更多信息時,也會出現暫存緩衝區。可以使用completeopt設置啓用和禁用它。

+1

嗯,我已經可以通過Ctags(即:CTRL +]跳轉到變量的聲明,然後通過CTRL-]再次跳轉到變量類型的定義,但是它不會跳來跳去。我知道歷史熱鍵(CTRL-o,CTRL-i)使努力最小化,但將這些信息保存在屏幕上會很好。所以,自動完成是創建暫存緩衝區的原因。很高興知道!謝謝! +1 – DevNull