2012-03-12 7 views
8

मैं अक्सर एसएसएच के माध्यम से रिमोट सर्वर तक पहुंचने के लिए स्वत: पूर्णता और ट्रम्प के लिए ido का उपयोग करता हूं।Emacs: ट्रम्प मोड में इडौ पूर्णता को अक्षम करें

(require 'tramp) 
(setq tramp-default-method "ssh") 
(ido-mode 1) 
(setq ido-enable-flex-matching t) 
(setq ido-everywhere t) 

मैं, Ido पूरा होने को निष्क्रिय करना चाहते जब मैं दूरस्थ सर्वर की सामग्री को ब्राउज़ कर रहा हूँ: मेरा .emacs निम्नलिखित लाइनें शामिल हैं। ध्यान दें कि परिवर्तनीय ido-enable-tramp-completion में मेरी समस्या से कोई लेना देना नहीं है। लाइन /[email protected]#1234:/var/www/file.txt पर विचार करें। मुझे कोलन (रिमोट फाइल पथ) के बाद भाग को कम करने के लिए इडौ की आवश्यकता नहीं है, मुझे कोलन से पहले भाग की परवाह नहीं है। मैं एसएसएच का उपयोग करता हूं, और इडौ हर बार कुछ सेकंड के लिए Emacs अंतराल बनाता है जब मैं ido-find-file चलाता हूं, और जब एसएसएच टाइमआउट खत्म हो जाता है, ट्रैम्प फिर से कनेक्ट करने का प्रयास करता है, मुझे पासवर्ड के लिए पूछता है और इसी तरह। यह व्यवहार अवांछनीय है।

Emacs संस्करण - 24.0.94.1

संपादित करें (20.03.12): Ido लेखक के साथ संपर्क करने के बाद मैं निम्नलिखित करने के लिए ido-file-name-all-completions-1 बदलने की कोशिश की:

(defun ido-file-name-all-completions-1 (dir) 
    (cond 
    ((ido-nonreadable-directory-p dir) '()) 
    ;; do not check (ido-directory-too-big-p dir) here. 
    ;; Caller must have done that if necessary. 

    ((and ido-enable-tramp-completion 
    (or (fboundp 'tramp-completion-mode-p) 
     (require 'tramp nil t)) 
    (string-match "\\`/[^/]+[:@]\\'" dir)) 
    ;; TRAMP RELATED CODE DELETED 
    nil) 
    (t 
    (file-name-all-completions "" dir)))) 

कोई सफलता। मैं तो

"\\`/[^/]+[:@]" 

करने के लिए regex बदल गया और यह काम किया - Ido विकलांग था, जब minibuffer कि मैच निहित। हालांकि, चूंकि इडौ रिमोट सर्वर पर फ़ाइलों को नहीं देख सका, इसलिए मैंने कुछ प्रविष्टियों में अन्य निर्देशिकाओं में फ़ाइलों की खोज के लिए ido-make-merged-file-list पर कॉल करना शुरू कर दिया। इसने रिमोट सर्वर पर इडौ के साथ और भी दर्द महसूस किया।

मैंने वैरिएबल ido-slow-ftp-hosts और ido-slow-ftp-host-regexps से /[email protected]#1234 पर सेट करने की भी कोशिश की, मदद नहीं की।

उत्तर

8

यदि आप C-x C-f दर्ज करते हैं तो आप फिर से अस्थायी रूप से निष्क्रिय खोज को अक्षम करते हैं और डिफ़ॉल्ट खोज-फ़ाइल पर वापस आते हैं।

अधिक जानकारी C-h f ido-find-file RET

इस हर बार Ido ऐसा करने के लिए के लिए एक कॉलन पाया, मैं तुम्हें उस के लिए अपने स्वयं के समारोह में लिखने के लिए है लगता है।

+0

यदि मैं दो बार 'ido-find-file' करता हूं, तो यह त्रुटि '* बैकट्रैक *' बफर में डाली जाती है -' डीबगर दर्ज किया गया - लिस्प त्रुटि: (त्रुटि "कमांड मिनीबफर में मिनीबफर का उपयोग करने का प्रयास किया गया") डीबगर दर्ज - लिस्प त्रुटि: (त्रुटि "कमांड मिनीबफर में मिनीबफर का उपयोग करने का प्रयास किया") '। और मुझे यह कार्य कहां लिखना चाहिए? –

+0

आप दो बार ido-find-file नहीं चला सकते हैं। 'सी-एक्स सी-एफ' कमांड ido-find-file को दोपहर का भोजन नहीं करेगा, यह सिर्फ खोज-फ़ाइल पर वापस आ जाएगा। 'एम-एक्स ido-find-file आरईटी' टाइप न करें। 'सी-एक्स सी-एफ' टाइप करें। – mathk

+0

मैं देखता हूं। एक कोलन देखने वाले ido के लिए मुझे एक समारोह कहां लिखना चाहिए? –

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