@ Doug'un cevabı biraz güncel değil ve odağı önceden tanımlanmış snippet'leri kullanarak kod genişletmeye odaklanıyor.
Bence OP'nin sorusu intellisense ile ilgilidir (örneğin, bir sınıfın otomatik tamamlama yöntemi adı).
hippi genişletmek eskiden popüler, sözdizimi analizörü emacs etiketleri . Bu yüzden ctags'ın desteklediği tüm dilleri destekler (C ++ , Java dahil). Ancak sonuç mükemmel değildir, çünkü ctags kodu analiz etmek için yalnızca normal ifade kullanır. Ayrıntılar için init-hippie-expand.el dosyasına bakın. Aşağıdaki öğelerin değerini kontrol ederek başlayabilirsinizhippie-expand-try-functions-list
otomatik tamamlama , süslü kullanıcı arayüzü (konsol penceresinde bile açılır menü) bulunan modern bir programdır. Clang'ı arka uç olarak kullanırsanız . Zeka çok daha iyi. Clang'ı çalıştırmak için, auto-complete eklentisi olan auto-complete-clang'ı yüklemeniz gerekir. Yalnızca clang'ın desteklediği dili destekler (C / C ++ / Obj-C). As Sylvain Benner işaret kullanabileceğiniz emacs-eclim aslında Tutulma yürütülebilir çağıran java ayrıştırma arka plan olarak. Böylece otomatik tamamlama java'yı destekleyebilir. Ayrıntılar için init-auto-complete.el dosyasına bakın.
anlambilim , hem kullanıcı arayüzünü hem de arka uç ayrıştırma motorunu sağlar. Yavaş. Açılır kullanıcı arayüzü TAMAM, ancak X penceresi gerektiriyor. Akıl sonucu ctags daha iyidir. Belgeleme benim için çok acayip. Ayrıntılar için init-semantic.el dosyasına bakın .
şirket modu otomatik tamamlamaya benzer, fark her şeyi tek bir pakette paketlemesidir. Örneğin, C ++ geliştiricilerinin yalnızca şirket modu yüklemesi gerekir (otomatik tamamlama bazı 3. taraf eklentilere ihtiyaç duyar). Başka bir UI farkı şirket adayı otomatik olarak gösterecektir . Böylece şirkette daha az tuşa basarsınız. Özelleştirme sonrasında otomatik tamamlamada aynı şeyi yapmak mümkündür.
Özetle, otomatik tamamlama, şirket en popüler iki seçimdir. Semantik ve hippi-genişleme de memnuniyetle karşılanır, ancak daha az kullanılır. Diğerleri bahsetmek için çok önemsizdir ve özellikleri zaten büyük dört tarafından kapsanmaktadır. Örneğin, otomatik tamamlama, yasnippet'i giriş kaynağı olarak kullanabilir (otomatik tamamlama kullanıcı arayüzünü sağlar, ancak gerçek adaylar yasnippet arka ucu tarafından üretilir).
Ben otomatik tamamlama veya şirket büyük kod tamamlama eklentisi olarak ve semantik veya hippi genişletme tamamlayıcı eklenti olarak kullanmanızı öneririz .
Şirket modunu ve hippi genişlemeyi kullanıyorum çünkü
Şimdi (2017 yılı) şirket modu, otomatik tamamlamadan daha aktif bir şekilde korunuyor ve daha fazla 3. taraf eklentisi var (örneğin, lateks eklentisi)
hippi-genişletme çok aktif değil, ancak TAB
şirket modu / semantik / otomatik tamamlamanın kullandığı anahtarı işgal etmiyor
C ++ / Java için şirket modu kullanıyorsanız, değiştirmek isteyebilirsiniz company-backends
.
Şirket modu hakkında birkaç ipucu,
Değerini değiştirmeniz gerekebilir company-backends
. Örneğin, değerinin olduğunu varsayalım (company-eclim company-semantic company-clang (company-dabbrev-code company-gtags company-etags company-keywords))
. O zaman company-eclim
sıfır olmayan adaylar alabilir, company
java yazdığınızı düşünüyor, bu yüzden sonra arka uçları ÇALIŞMAZ company-eclim
.
Şimdi bakalım (company-dabbrev-code company-gtags company-etags company-keywords)
. Bu dört arka ucun hepsi birlikte kullanılacak. Örneğin, company-dabbrev-code
sıfır olmayan adayları başarıyla getirdikten sonra bile , diğer üç arka uç hala yürütülür.
Gerçek dünyada, genellikle arka uçların sırasını yeniden ayarlamak veya yeni arka uç eklemek gerekir ( company-rtags
örneğin).
complete.el
denemek isteyebilirsiniz . Çok eski ve az biliniyor, ancak sağladığı tampon içi tamamlama türü faydalı olabilir.M-x find-library complete
, ardından dosyadaki Yorum'u okuyun.