2013-02-08 16 views
5

मैं emacs स्वत: पूर्णता मोड से बहुत उत्साहित हूं। लेकिन मेरा कोडबेस बड़ा है, और कभी-कभी, जब मैं टाइप करता हूं, और यह पूरा होने का प्रयास करने की कोशिश करता है, तो यह सभी संभावित शब्दों के माध्यम से खोजता है, और लटकता है। यह बहुत ही खीझ दिलानेवाला है।पृष्ठभूमि में स्वत: पूर्णता प्रश्न कैसे करें?

समानांतर प्रक्रिया में पृष्ठभूमि में खोज चलाने का कोई तरीका है, इसलिए emacs अभी भी उपयोगकर्ता क्रियाओं का जवाब देगा। और केवल तभी जब प्रश्न समाप्त हो जाता है तो बिंदु उस स्थान पर होता है, तो ऑटो पूर्णता का सुझाव देते हैं?

पसंद है, कीबोर्ड इनपुट प्राथमिक प्रक्रिया है, और कभी देरी नहीं हो सकती है, और स्वत: पूर्णता मशीन संसाधनों पर अवशिष्ट के रूप में काम करती है।

उत्तर

3

emacs-jedi वास्तव में पाइथन ऑटो-पूर्णता के लिए ऐसा करता है। आप init property का उपयोग करके पृष्ठभूमि प्रक्रिया के लिए अनुरोध भेज सकते हैं और फिर परिणाम कहीं भी संग्रहीत कर सकते हैं। candidate संपत्ति में, आप संग्रहित परिणाम को स्वत: पूर्ण करने के लिए पास कर सकते हैं। यहां एसी-स्रोत परिभाषा है। विवरण के लिए स्रोत देखें।

(ac-define-source jedi-direct 
    '((candidates . jedi:ac-direct-matches) 
    (prefix . jedi:ac-direct-prefix) 
    (init . jedi:complete-request) 
    (requires . -1))) 

emacs-ipython-notebook भी इसी तरह की तकनीक का उपयोग करता है, लेकिन मुझे लगता है कि Emacs-जेडी पढ़ने में आसान है।

+0

जैसा कि मैंने सीखा, यह पायथन के लिए है। और मुझे पढ़ने के पात्रों से सार्वभौमिक स्वत: पूर्णता के लिए कुछ सामान्य तंत्र की आवश्यकता है; TAGS आदि से – Necto

+0

ठीक है, शायद मेरा जवाब भ्रामक था। लेकिन आप तकनीक का उपयोग कर सकते हैं (अनुरोध भेजने के लिए init का उपयोग करें, आदि) वैसे भी। पृष्ठभूमि प्रक्रिया के साथ संवाद करने के लिए आपको किसी प्रकार का आरपीसी उपयोग करने की आवश्यकता है। [ईपीसी] का उपयोग करना (https://github.com/kiwanami/emacs-epc) emacs-jedi के रूप में एक संभावना है। यह एक सामान्य उद्देश्य आरपीसी है और इसमें पर्ल, पायथन और एलिस्प कार्यान्वयन है। – tkf

संबंधित मुद्दे