यहां बताया गया है कि कंपनी के कामों को कैसे पूरा किया जाता है (मैं थोड़ा और सरल कर रहा हूं और अधिक विस्तृत विवरण के प्रलेखन में पाया जा सकता है company-backends C-hvcompany-backendsRET।
आपके पास बैकेंड्स (पूर्ण इंजन) की एक सूची है, कंपनी को बिंदु पर पूर्णता प्रदान करने का प्रयास करना चाहिए। कंपनी इस बैकएंड में से प्रत्येक को एक के बाद एक कोशिश करती है और पहला जो किसी भी उम्मीदवार को लौटाता है उसे पूरा करने के लिए उपयोग किया जाता है और बाकी बैकेंड को अनदेखा किया जाता है। इसलिए डिफ़ॉल्ट रूप से एक समय में केवल एक बैकएंड का उपयोग किया जाता है।
आपके मामले में (आप emacs- लिस्प-मोड में लगते हैं) emacs-lisp बैकेंड उम्मीदवारों को पूरा करने के लिए वापस कर रहा है और इसलिए company-dabbrevकभी भी पूरा करने के लिए कंपनी द्वारा उपयोग नहीं किया जाता है और आप कभी भी foobarsentenceपूरा नहीं करते हैं । इसलिए आप कंपनी-बैकेंड को बदलना चाह सकते हैं ताकि company-dabbrevपहले company-elisp(या company-capfहालिया एमेसेन में) आए। लेकिन मुझे लगता है कि वह नहीं है जो आप चाहते हैं कि मौजूदा स्थिति को उलट दिया जाएगा और आपको एमएसीएस-लिस्प बैकेंड (जिस मामले में पढ़ा गया है) से पूर्णता नहीं मिलेगी।
कंपनी कई स्रोतों से पूर्णता को मर्ज करने का एक तरीका प्रदान करती है जो इसे groupedबैकएंड कहती है । आमतौर पर सदस्य company-backendsव्यक्तिगत बैकेंड होते हैं, लेकिन यह बैकएंड की एक सूची भी हो सकती है, जिसमें बैकएंड से पूरा होने पर विलय हो जाता है बशर्ते कि वे एक ही वापस हों prefixया पाठ पूरा हो (कृपया company-backendsविस्तृत विवरण के लिए दस्तावेज देखें )।
इसलिए यदि आप company-elisp(हाल ही में एमैकेन company-capfका उपयोग किया जाता है) से पूर्णता को मर्ज करना चाहते हैं और company-dabbrevबस यही करें
(add-to-list 'company-backends '(company-capf company-dabbrev))
इसके अतिरिक्त आप :withकीवर्ड का उपयोग करके विभिन्न बैकएंड को मर्ज कर सकते हैं
(add-to-list 'company-backends '(company-capf :with company-dabbrev))
यह उदाहरण के बिना बैकएंड की एक सूची से अलग है :withक्योंकि कंपनी (पाठ पूरा होने के लिए) का :withनिर्धारण करने से पहले केवल बैकएंड का उपयोग करेगी prefix। तात्पर्य यह है कि बैकएंड के उम्मीदवारों को :withकंपनी द्वारा नजरअंदाज कर दिया जाएगा, भले ही बैकएंड वापस आए prefixया नहीं, बैकएंड में से कोई भी :withवापस नहीं होने के बावजूद prefix।
आप इसे स्थानीय रूप से emacs-lisp बफर में सेट करना चाह सकते हैं (मैं ऐसा करना पसंद करता हूं)