2010-11-04 12 views
12

क्योंकि मुझे कई बार कोशिश करने के बाद स्वचालित कोड-समापन (एमएस-दुनिया में उर्फ ​​इंटेलि-भावना) के लिए काम करने के लिए CEDET नहीं मिल सकता है (नहीं, यह अभी काम नहीं कर रहा है!), मेरे पास है auto-complete का उपयोग करने का निर्णय लिया, जो मेरे लिए "काफी बढ़िया" काम करता है।Emacs ऑटो-पूर्ण

दुर्भाग्यवश, auto-complete को इसके सुझावों के साथ imenu छोड़ने की बात आती है जब एक परेशान व्यवहार होता है।

  1. auto-completeimenu शुरू होता है, इससे कोई फ़र्क नहीं पड़ता कि इसमें कितने सुझाव हैं। इसलिए, यदि केवल एक सुझाव है, तो मेनू प्रकट होता है। 1.
  2. imenu से बाहर निकलने के लिए, मेनू को गायब करने के लिए मुझे LEFT या RIGHT कुंजी का उपयोग करना होगा। ESC-ESC-ESC का कोई प्रभाव नहीं है।

क्या इन दोनों व्यवहारों को संशोधित करने का कोई तरीका है?

 
(require 'auto-complete-config) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
(ac-config-default) 
(setq ac-delay 0.5) ;; eclipse uses 500ms 

सधन्यवाद, mefiX

उत्तर

5

'बंद करो स्वतः पूर्ण' अपने .emacs के लिए निम्न जोड़कर सेट किया जा सकता:

यहाँ मेरी .emacs फ़ाइल का एक अंश auto-complete प्रासंगिक सामान दिखा है

(define-key ac-completing-map "\ESC/" 'ac-stop) 

... या वैकल्पिक रूप से आप सीजी को डिफ़ॉल्ट Emacs StopSomething कमांड के रूप में उपयोग कर सकते हैं :)

केवल एक उम्मीदवार होने पर मेनू में पूरा होने के लिए, मुझे सच में यकीन नहीं है कि आप कौन सा व्यवहार चाहते हैं?

+0

मुझे लगता है कि केवल एक उम्मीदवार होने पर, वांछित व्यवहार केवल उस उम्मीदवार को सम्मिलित करना होगा। कुछ स्वत: पूर्ण इंजन उम्मीदवारों के चयन के साथ भी ऐसा करते हैं; वे सभी उपलब्ध उम्मीदवारों के माध्यम से लगातार हॉटकी सक्रियण के साथ चक्र करेंगे। – Cheeso

+0

धन्यवाद, डेविड मिलर। दुर्भाग्यवश, कुंजी-असाइनमेंट मेरे मामले में काम नहीं करता है और मुझे नहीं पता कि क्यों। उदाहरण के लिए, मैं अपनी .emacs-file संपादित कर रहा हूं, जहां एसी बहुत अच्छी तरह से काम करता है। तो मैं टाइप करता हूं "(def" और imenu (1+) सुझावों (जैसे "(defun") के साथ पॉप अप करता है। जब मैं "ईएससी" दबाता हूं, कुछ नहीं होता है। मैंने निश्चित रूप से "परिभाषित कुंजी" का मूल्यांकन किया है। मैं क्या गलत कर रहा हूं? – mefiX

+3

ठीक है, कुछ कोशिश करने के बाद, मुझे पता चला कि दबाने और भागने से बचने के लिए "\ ESC /" खड़ा है, जो मैं नहीं चाहता था। कुछ शोध के बाद, मुझे पता चला कि '(परिभाषित- कुंजी एसी-पूरा करने-मानचित्र "\ e" 'एसी-स्टॉप)' चाल है! – mefiX