SORU
1 HAZİRAN 2009, PAZARTESİ


cscope veya ctags neden diğer üzerinden bir tercih?

Ben öncelikle bir editör olarak vim / gvim kullanımı ve çekirdek kaynağı keşfetmek için lxr (the Linux Cross Reference) ve ya cscope ctags bir arada kullanarak bakmak durumundayım. Ancak, hiç de cscope ctags kullanmadım ve diğer birincil düzenleyicisi olarak dikkate vim kullanımını ele bir seçim olabilir neden duymak ister.

CEVAP
1 HAZİRAN 2009, PAZARTESİ


ctags iki özellik sağlar: işlev çağrıları kendi tanımları ve tamamlama omni. atlamak için izin İlk yöntem için telefon üzerinde olduğunda, g] CTRL-] vurmak bu yöntem tanımlanmış ya da uygulandığı yere atlamak anlamına gelir. İkinci özelliği foo. foo->, yazarken ve eğer foo bir yapı ise, alan tamamlanması ile bir açılır menü gösterilir anlamına gelir.

cscope da ilk özelliği - set cscopetag - ama son değil. Ancak cscope ayrıca bir işlev de denir yerlerden herhangi atlamak için yeteneği ekler.

Bildiğim kadarıyla bir kod tabanı ile ilgili hoplayıp zıplıyor, ctags sadece işlevi cscope bir fonksiyonu da denir nerede olduğunu size gösterebilir oysa uygulanan, bulunduğu yere doğru götürür.

Neden diğer üzerinden bir tercih ederdin? İkisini de kullanıyorum. ctags kurmak daha kolay, daha hızlı koşmak ve eğer tek bir yolu atlama merak ediyorsanız daha az çizgiler gösterecektir. Sadece :!ctags -R . g] sadece çalışır çalıştırabilirsiniz. Ayrıca omni şey tam sağlar.

Cscope daha büyük, bilinmeyen kod tabanları için mükemmeldir. Bu cscope bir dosyayı ayrıştırmak için dosya adlarının bir listesini içeren gerektiğinden bir ağrı ayarlayın. Ayrıca vim, varsayılan anahtar bağları kurmak yok - :cscope blah blah el ile çalıştırmanız gerekir.

Bir bash script var yumruk sorunu çözmek için bu gibi görünüyor 10**:

#!/bin/sh
find . -name '*.py' \
-o -name '*.java' \
-o -iname '*.[CH]' \
-o -name '*.cpp' \
-o -name '*.cc' \
-o -name '*.hpp'  \
> cscope.files

# -b: just build
# -q: create inverted index
cscope -b -q

Bu benim ilgilendiğim, kod arar, yarattığı cscope.dosya listesi ve veritabanı oluşturur. Koşabilirim bu şekilde ":!"tüm hatırlamak zorunda kalmadan adımları ayarlayın. cscope_gen.sh

Cscope arama ctrl-space x cscope diğer downer hafifleten, bu Pasajı, 2: I göster

nmap <C-@><C-@> :cs find s <C-R>=expand("<cword>")<CR><CR>

Benzer bağlamaları bir grup kurar this cscope_maps.vim plugin var. Hiçbir zaman tüm seçeneklerin ne hatırlayamıyorum, bu yüzden boşluk ctrl sopa eğilimindedir.

Ctags kurmak kolaydır ve genelde çok fazla bir şey yapmadan çalışıyor, omni-tamamlamak için hayati bir mesele de. sonuç: cscope eğer büyük ve çok bilinmeyen kod tabanı korumak varsa, daha fazla özellik sağlar, ancak daha fazla bacak çalışma gerektirir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GirlSanctuaryBlog

    GirlSanctuar

    28 Aralık 2011
  • SPBedition

    SPBedition

    24 HAZİRAN 2013
  • TechRax

    TechRax

    21 EYLÜL 2009