2012-05-04 28 views
10

Genellikle C projelerimin çoğunu Vim'de kodlarım. Navigasyon ile rahat, arama ve değiştirme ve Ctags/Cscope ile indeksleme. Ben istiyorumVim - Veri türü göster

bir özelliği, mümkünse ekranda imlecin altındaki bir değişken için veri türü gösterecek bir keymapping olduğunu.

Örneğin, imlecim bir değişkende bulunuyorsa, "test123" (yani: int test123 = 0) türün (int) ve Vim içindeki başka bir sekmede gösterilen değişkenle ilgili bazı diğer ayrıntılara sahip olmanın bir yolu var mı? ? (Struct yani)

Ayrıca, yapı değişkeni için aynı şeyi ve açıklayıcı sekme yanı sıra tip tüm üyelerin listesini gösterecek benzer şeyler mi var?

Ayrıca, kodlama yaparken, Vim'in üst kısmında bu gerekliliği yerine getiren bir "[Scratch] [Önizleme]" başlıklı bir sekme olduğunu fark ettim, ancak neyi tetiklediğine dair hiçbir fikrim yok (aramalar ve Ctag aramaları tetiklemiyor gibi görünüyor. O kadar benziyor:

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 

Bu zaten bir ölçüde Vim var olan bir şey olduğunu düşünüyorum, ama ben onunla nasıl çalışmak fikrim yok.

Teşekkür ederiz.

cevap

2

Ne istediğini yapar herhangi eklentinin bilmiyorum ancak libclang kullanarak oldukça mümkün olmalıdır. İstediğinize yakın olan 'tanıma git' işlevini ekleyen bir fork of clang_complete var. Ancak bu eklenti üzerindeki gelişme durgun görünüyor. Belirli tamamlanması hakkında daha ayrıntılı bilgi elde otomatik tamamlama yaparken

da sıfırdan tamponu görüntülenir. completeopt ayarı kullanılarak etkinleştirilebilir ve devre dışı bırakılabilir.

+1

Hmm, bir değişkenin Ctags (yani: CTRL +)) aracılığıyla tanımlanmasına ve daha sonra CTRL-] aracılığıyla tekrar değişken türünün tanımına atlayabilirim, ancak ileri geri sıçramaması güzel olurdu. Tarih kısayol tuşlarını (CTRL-o, CTRL-i) çabayı en düşük seviyeye getirdiğini biliyorum, ancak bu bilgiyi ekranda tutmak güzel olurdu. Yani, otomatik tamamlama, bu kazıyıcı arabelleği oluşturan şeydir. Bilmek güzel! Teşekkürler! +1 – DevNull