यहां बताया गया है कि कंपनी के कामों को कैसे पूरा किया जाता है (मैं थोड़ा और सरल कर रहा हूं और अधिक विस्तृत विवरण के प्रलेखन में पाया जा सकता है company-backends
C-hvcompany-backends
RET।
आपके पास बैकेंड्स (पूर्ण इंजन) की एक सूची है, कंपनी को बिंदु पर पूर्णता प्रदान करने का प्रयास करना चाहिए। कंपनी इस बैकएंड में से प्रत्येक को एक के बाद एक कोशिश करती है और पहला जो किसी भी उम्मीदवार को लौटाता है उसे पूरा करने के लिए उपयोग किया जाता है और बाकी बैकेंड को अनदेखा किया जाता है। इसलिए डिफ़ॉल्ट रूप से एक समय में केवल एक बैकएंड का उपयोग किया जाता है।
आपके मामले में (आप 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 बफर में सेट करना चाह सकते हैं (मैं ऐसा करना पसंद करता हूं)