Company-dabbrev'i Şirket tamamlama açılır penceresine nasıl ekleyebilirim?


12

Kurmak:

KAEL üzerinde 2015-07-25 GUI sürümü GNU Emacs 25.0.50.1 (x86_64-w64-mingw32)

EmacsW64'ten derlenmiştir.

, MELPA'nın en son sürümünü kullanarak

Windows 7 x64 bit.

Durum:

Örneğin, tampon foobarsentence yazıyorum.

Ve sonra bunun altında yeni bir satır başlatın ve fooba yazarak foobarsentence, Şirket açılır penceresinin tamamlanmasını önereceğim. Ama yok foobarsentence.

Bunun için şirket-dabbrev'i kullanabileceğimi başka bir cevaptan öğrendim M-/. Ancak önerileri company-dabbrevaçılır pencereye nasıl 'besleyebileceğimi anlayamadım . Sorumu netleştirmek için bir ekran gif yaptım.

resim açıklamasını buraya girin

Gördüğünüz gibi M-/arar company-dabbrev. Ancak şirket tamamlanma açılır pencerede önerilen görmek istiyorum. Beni şaşırttı, bu varsayılan olarak değil.

company-dabbrevŞirket açılır penceresinden önerileri 'beslemek' için herhangi bir öneriniz var mı?


Bu hangi büyük mod?
PythonNut

Yanıtlar:


25

İşte şirket tamamlama nasıl çalışır (Ben biraz daha basit bir açıklama belgeleme bulunabilir bulabilirsiniz company-backends C-hvcompany-backendsRET.

Şirketinizin tamamlanmasını sağlamaya çalıştığı arka uçların (tamamlama motorları) bir listesine sahipsiniz. Şirket bu arka ucun her birini birbiri ardına dener ve herhangi bir adayı iade eden ilk tamamlama için kullanılır ve geri kalanların geri kalanı yoksayılır. Bu nedenle, varsayılan olarak bir seferde yalnızca bir arka uç kullanılır.

Sizin durumunuzda (emacs-lisp-modunda görünüyorsunuz) emacs-lisp arka ucu adayları tamamlanmak üzere geri döndürüyor ve bu yüzden company-dabbrevşirket tarafından asla tamamlanma için kullanılmıyor ve asla foobarsentencetamamlanmıyorsunuz. Bu nedenle, şirket arka uçlarını daha company-dabbrevönce company-elisp(veya company-capfson zamanlarda emacsen) gelecek şekilde değiştirmek isteyebilirsiniz . Ama sanırım şu anki durumu tersine çevirmek istediğiniz şey bu değil ve emacs-lisp arka ucundan tamamlanmayacaksınız (bu durumda okumaya devam edin).

Şirket, groupedarka uç olarak adlandırdığı şeyi kullanarak birden çok kaynaktan tamamlamaları birleştirmek için bir yol sağlar . Genellikle üyeleri company-backendsbireysel arka uçlardır, ancak aynı zamanda arka uçların bir listesi olabilir, bu durumda arka uçların tamamlanması, aynı şekilde dönmeleri prefixveya tamamlanacak metinler olması koşuluyla birleştirilir ( company-backendsayrıntılı açıklama için lütfen belgelerine bakın ).

Yani tamamlamaları birleştirmek istiyorsanız company-elisp(son emacsen'de company-capfkullanılır) ve company-dabbrevbunu yapın

(add-to-list 'company-backends '(company-capf company-dabbrev))

Ayrıca, :withanahtar kelimeyi kullanarak farklı arka uçları birleştirebilirsiniz

(add-to-list 'company-backends '(company-capf :with company-dabbrev))

Bu, :withşirket olmadan (arka plan metni tamamlanacak) :withbelirlemek için yalnızca arka uçları kullanacağından örnek içermeyen arka uçlar listesinden farklıdır prefix. Bu ima sonra backends gelen adaylar :with, şirket tarafından göz ardı edilecektir bakılmaksızın arka uçları bir dönüş olsun prefix, ya da hiç olmadığını önce backends hiçbiri :withdönüş a prefix.

Bunu yerel olarak emacs-lisp buffer'da ayarlamak isteyebilirsiniz (Bunu tercih ederim)


@wasamasa geri bildirim için teşekkürler, bahsettiğim cevabı düzenledi:with
Iqbal Ansari

Efendim, oyumu hak ediyorsunuz. Açıklamanızdan gerçekten zevk aldım ve Şirket hakkında bir şeyler öğrendim. Bunun için teşekkürler.
ReneFroger

Sevindim yardımcı olabilir
Iqbal Ansari
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.