SORU
12 Temmuz 2009, Pazar


Vim içinde otomatik tamamlama

Özetle, bir yer arıyorumçalışmaotomatik tamamlama Vim Düzenleyicisi için özellik. Vim tamamen Linux altında bir IDE değiştirir ve bu kesinlikle doğru olsa da, önemli bir özelliği yoksun o argued before I: otomatik tamamlama.

BiliyorumCtrlN, Exuberant Ctags integration, Taglist, cppcomplete ve OmniCppComplete. Ne yazık ki, bunların hiçbiri benim tarife uyan “çalışma tamamlama:”

  • CtrlNclass while nasıl yazıldığını forgotton varsa güzelce işler (tek). Oh iyi.
  • Ctagssen esasları verir ama dezavantajları bir yeri vardır.
  • Taglistsadece bir Ctags sarıcı ve dezavantajları çoğu (iyi çalışıyor olsa da . miras gibilistebildirimleri).
  • cppcompletesadece söz verdiğim gibi çalışmıyor, nerede yanlış yaptığımı anlayamıyorum, ya da “eğer” doğru ve sınırlamalara tasarım. işe yarayıp yaramadığını
  • OmniCppCompletecppcomplete aynı sorun var gibi görünüyor, yani otomatik tamamlama düzgün çalışmıyor. Ayrıca, tags dosyasını manuel olarak yeniden güncellendi.

Modern bile, tam gelişmiş IDE iyi C kod tamamlama sunuyor gerçeğinin farkındayım. Bu şimdiye kadar bu alanda Vim eksikliği kabul ettim. Ama kod tamamlama temel düzeyde çok fazla birşey değil, ve aslında verimli kullanımı için gerekli olduğunu düşünüyorum. Aşağıdaki şeyler en azından yapabilecek bir şey arıyorum.

  • Sözdizimi farkındalık. cppcomplete sözler (ama benim için sunmuyor), doğru, duyarlı kapsamı aşağıdaki otomatik tamamlama:

    variableName.abc
    variableName->abc
    typeName::abc
    

    Ve gerçekten, başka bir şey işe yaramıyor.

  • Konfigürasyon. Dosyaları olduğu, ve bu nedenle komut dosyası bilgileri otomatik tamamlama alır belirtmek istiyorum (kolay). Aslında, gerekli yolları vardır belirtir benim dizinde bir Makefile var. Eclipse bilgilerin bulundu yorumlayabilir, neden Vim bir script değil mi?

  • Güncelliği. Benim dosyamda bir şey değiştirir değiştirmez, otomatik tamamlama bunu yansıtmak istiyorum. Yapıyorumdeğilel ctags (veya benzer bir şey) tetiklemek istiyorum. Ayrıca, bir değişiklik olmalıartımlısadece bir dosyayı değiştirdim , yani tamamenkabul edilemezyeniden ayrıştırma bütün dizin ağacı büyük olabilir) ctags için.

Bir şey mi unuttum? Güncelleme için çekinmeyin.

Yapılandırma ve/veya müdahalesi oldukça çok rahatsız oluyorum ama sıfırdan bir çözüm programı istemiyorum, ve Vim komut dosyaları hata ayıklama iyi değilim.

Son bir not, aslında isterdim ona benzer bir şey için Java ve C# ama sanırım çok fazla umut için: ctags sadece ayrıştırır kod dosyaları ve her iki Java ve C# büyük, önceden derlenmiş bir çerçeve bu olmalı endeksli. Ne yazık ki, developing .NET without an IDE C den bir PİDE bile daha fazla .

CEVAP
8 ŞUBAT 2013, Cuma


YouCompleteMe deneyin. Bu libclang ile Çınlama arayüzü sunan anlamsal C C Objective-C tamamlama//kullanır. Bulanık eşleştirme ile çok clang_complete, ama önemli ölçüde daha hızlı gibi.

Yukarıdakilere ek olarak, YCM da C#, Python, Git, TypeScript vb için semantik tamamlanmasını sağlar. Ayrıca non-semantik, tanımlayıcı tabanlı tamamlanması için semantik destek yok diller için sağlar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • graham025

    graham025

    25 NİSAN 2006
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010
  • RawBrahs

    RawBrahs

    28 Aralık 2010