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:”
- CtrlN
class
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
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.
Vim içinde otomatik tamamlama...
Nasıl/Kaldır değiştirmek için UI otoma...
Otomatik Ölçek Metin Sınırları içinde ...
JQuery UI otomatik tamamlama sınırı so...
twitter bootstrap otomatik tamamlama K...