Soru Vim: Beyannameye nasıl gidileceği (sınıf, yöntem, fonksiyon, değişken vb.)


Şu anda birçok sınıf, yöntem, fonksiyon, değişken vb. Kullanan bir dosya üzerinde çalışıyorum. Hepsinin beyanına gitmek mümkün mü? Lütfen, bu beyanlardan bazilarinin ayni dosyada oldugunu, digerleri de diger dosyalarda oldugunu (açiklamayan ve bildirimlerin nerede oldugunu bilmediginiz halde var olduklarini) göz önünde bulundurun. Bildiri dizinde bir seviye yukarıdaysa ne olur? ve ya bir seviye aşağı ise?

Bu, bahsettiğimiz programlama diline göre farklı bir şekilde mi yapıldı, yoksa dilekçeye bakılmaksızın beyanların bulunması prosedürü aynı mıdır?

Okuyorum ve çözümün etiketlerle ilgili olduğu anlaşılıyor. Bununla birlikte, özellikle, bazı durumlarda, diğer dosyalardaki tanımlardan bahsettiğimizi göz önünde bulundurarak, bunun nasıl başarılabileceğini (adım adım) bilmek isterim.

Bunun IDE'lerle yapılabileceğini biliyorum, ancak bunun vim ile ne kadar başarılı olabileceğini bilmek istiyorum.

Sadece yeni bir Vim yüklemem var. Henüz herhangi bir eklenti yüklemedim, ancak gerekliyse yapmaya hazırım. Belki bu eklentiler olmadan ve yapılabilir.

Şimdiden teşekkürler!


24
2017-11-12 16:05


Menşei


Evet, Vim'de bu en iyi etiketlerle yapılır. Yerleşik belgeleri okudunuz mu?:help tags) ve tam olarak ne ile uğraşıyorsunuz ?! - Ingo Karkat
@IngoKarkat: Yorumunuz için teşekkürler. Bunu okudum ve beyanların aranmasında farklı dosyaların yer alabileceği gerçeğiyle mücadele ediyorum. Ayrıca, tüm bunların programlama diline bağlı olarak farklı şekilde yapılıp yapılmadığı açık değildir. - pablofiumara


Cevaplar:


Kurma etiketler o kadar da zor değil (Vim'deki çoğu şey gibi), IDE'lere kıyasla otomatik değil.

  1. İlk önce ctags aracı. En yaygın bugün Coşkulu Ctagsbulunan ctags.sourceforge.net.
  2. Ardından, bir etiketler veritabanı (bir dosya adı tags) projenizdeki tüm dosyalar için. Bu genellikle koşarak yapılır ctags -R . Proje kökünden (ayrıca Vim içinden) :!ctags ...). Coşkulu Ctags desteği 41 dilve normal ifadelerle bile uzatabilirsiniz.
  3. Son olarak, Vim'in etiketler veritabanı. İle :set tags=./tags;, dosyanın dizininde kök dizine doğru arama yapar. Belirli global dizinleriniz varsa, bunları ekleyebilirsiniz.
  4. Bununla, Vim'in etiketini kullanarak başlayabilirsiniz. <C-]> ve :tag.

Periyodik olarak güncellemeniz gerekiyor etiketler veritabanı; eklentileri vardır easytags.vim) bunu sizin için otomatik olarak yapabilir.


22
2017-11-13 09:46



Geç --exclude=file.jsveya sadece uyarıyı dikkate almayın. - Ingo Karkat
A) ile ctags -R, veritabanı geçerli (proje kökü) dizininde oluşturulur, böylece tüm dosyalar aşağıya doğru; Dosyanın bakış açısından, bu başka bir yoldur, bu yüzden endişelenmeyin. - Ingo Karkat
Ekmek :help 'tags' ve :help file-searching (ve korkmayın!). C) Evet, örneğin. - Ingo Karkat
Soru, beyan için sorar. Ctrl +] sizi tanımlamaya götürecektir, ancak bildirime değil. Kullanım belgelerinin * .h dosyalarındaki açıklamalarla * .c dosyalarının tanımlarıyla değil, açıklamalarla var olduğu bir projeye katıldım. Beyanın yanı sıra tanımlamaya da atlamak için bir yol bulmak gerçekten kullanışlı olacaktır. - bobpaul
Tamam anladım. Prototipler eklemek için ctags --LANG-types = seçeneğini kullanmam gerekiyordu. vim: tselect komutu daha sonra prototipe veya tanıma atlamayı kolaylaştırır. - bobpaul


Deneyebilirsin gd, daha güçlü olan 'tanımıma git' için, yerel beyannameye gider, denemek isteyebilirsiniz tags Ingo'nun önerdiği gibi.


6
2017-11-13 03:33