2011-06-24 13 views
11

मैं विंडोज़ पर emacs का उपयोग कर रहा हूँ। मैं जानना चाहता हूं कि emacs में डिफ़ॉल्ट "फ़ाइल खोजें:" पथ को कैसे बदलें यानी जब हम "सीएक्स सीएफ" दबाते हैं, तो मैं डिफ़ॉल्ट फाइल पथ को अपने दस्तावेज़ निर्देशिका को इंगित करने के लिए चाहता हूं, न कि "c: \ emacs - ** \ bin/"।emacs "फ़ाइल खोजें:" डिफ़ॉल्ट पथ

उत्तर

0

आपको अपनी नई डिफ़ॉल्ट निर्देशिका में पर्यावरण चर HOME को फिर से परिभाषित करना होगा।

+0

नहीं 'HOME' का उपयोग केवल आपकी Emacs डिफ़ॉल्ट निर्देशिका के अलावा कई चीजों के लिए किया जाता है। इसके साथ मेसिंग शायद कई चीजें अप्रत्याशित रूप से व्यवहार करेगी। -1 –

+1

मान्य टिप्पणी। लेकिन चूंकि Emacs अब अपनी निर्देशिका का उपयोग करने लगता है, इसका मतलब है कि HOME चर अभी तक परिभाषित नहीं है। इसे 'मेरे दस्तावेज़' पर परिभाषित करने से कोई दिक्कत नहीं होगी। मैं यह नहीं कहूंगा कि अगर वह लिनक्स – Giann

+0

पर था, तो मैं स्वीकार करूंगा कि मुझे नहीं पता कि विंडोज़ पर चीजें कैसे हैं। –

16

एक फ़ाइल में जा रहे बफर में, जब आप किसी नई फ़ाइल पर जाते हैं तो डिफ़ॉल्ट पथ (सी-एक्स सी-एफ) निर्देशिका है जिसमें वर्तमान बफर फ़ाइल है।

आदेश मूल्य "c: \ Emacs - ** \ bin /" ओवरराइड करने के लिए कुछ के साथ और अधिक समझदार, सेट अपने .emacs फ़ाइल में default-directory चर:

(setq default-directory "/path/to/documents/directory/") 

ध्यान दें कि पथ मूल्य चाहिए एक स्लैश (या विंडोज़ पर बैकस्लैश) के साथ समाप्त होता है।

हालांकि, आप डिफ़ॉल्ट रूप से अपने HOME पर्यावरण चर के मान को बदलने पर भी विचार करना चाहेंगे, यह वैरिएबल पर default-directory अंक वैरिएबल पर है (जब तक ऊपर दिखाए गए किसी अन्य मूल्य पर सेट न हो)।

+0

आपको अभी भी एनटीईएमएक्स में फ़ाइल पथों में आगे की स्लैश का उपयोग करना चाहिए। यह जानता है कि क्या करना है। – phils

+0

@phils: मुझे लगता है कि पिछड़े स्लैश पर स्लेश पसंद करने का कारण यह है कि बैकस्लैश स्ट्रिंग्स में भी बचने वाला चरित्र है, इस प्रकार आपको हमेशा इस तरह के पथ नाम लिखना पड़ता है: "c: \\ foo \\ bar \\" जो बन जाता है बदसूरत – Thomas

+1

यह उत्तर मेरे लिए काम नहीं करता है (और अन्य)। @loudandclear उत्तर के तहत चर्चा देखें। –

1

यह यह करना होगा:

(global-set-key (kbd "C-x C-f") (lambda() (interactive) 
            (cd "somePathHere") 
            (call-interactively 'find-file))) 

+0

@ सबोटेरो किसी ने -1 किया क्योंकि यह एक गरीब, सुरुचिपूर्ण समाधान है। Emacs में OPs प्रश्न, डिफ़ॉल्ट-निर्देशिका को संबोधित करने के लिए तंत्र हैं। किसी नए फ़ंक्शन पर रीमेपिंग कुंजी इस सरल कार्य को संबोधित करने का तरीका नहीं है। –

+1

यह एक समझदार जवाब है। ओपी संभावित रूप से एक निश्चित निर्देशिका में शुरू करने के लिए 'सी-एक्स सी-एफ 'चाहता है। 'डिफ़ॉल्ट-निर्देशिका' सेट करना * ऐसा नहीं करेगा, क्योंकि यह बफर-स्थानीय है और जैसे ही आप पढ़ते हैं या एक अलग निर्देशिका में लिखते हैं, बदल जाएगा। आपको 'खोज-फ़ाइल', 'थका हुआ' और कुछ भी सेट करने के लिए हुक जोड़ना होगा। और प्रत्येक बफर में एक सेटिंग बदलना शायद एक कीबाइंडिंग के व्यवहार को बदलने के लिए एक "सुरुचिपूर्ण" तरीका है! यदि आप कुछ अलग करने के लिए कीबाइंडिंग चाहते हैं, तो इसे कस्टम रैपर पर रीबंड करना सरल, मूर्खतापूर्ण है और किसी और चीज़ में हस्तक्षेप नहीं करेगा। – pyrocrasty

+0

हालांकि, यदि आप किसी कुंजी को फ़ंक्शन बाध्य कर रहे हैं, तो आपको इसे कम से कम एक नाम देना चाहिए। यदि आप चाहें तो आप 'defun' इनलाइन का उपयोग कर सकते हैं (हालांकि इसे शीर्ष-स्तर पर परिभाषित करना बेहतर है, इसलिए सहायता प्रणाली परिभाषा पा सकती है)। – pyrocrasty

3

चर 'डिफ़ॉल्ट-निर्देशिका' "वर्तमान" निर्देशिका (वर्तमान बफर के लिए) है (अपने दस्तावेज़ों निर्देशिका के लिए पथ के साथ somePathHere बदलें)। कमांड 'सीडी' निर्देशिका बदलता है, और किसी फ़ाइल या निर्देशिका (उदाहरण के लिए डायर के साथ) पर जाकर उस बफर के लिए 'डिफ़ॉल्ट-निर्देशिका' बदल जाता है।

आप कमांड लाइन पर उस निर्देशिका को पास करके, किसी दिए गए निर्देशिका में Emacs प्रारंभ कर सकते हैं। आप इसे करने के लिए एक विंडोज शॉर्टकट का भी उपयोग कर सकते हैं। और आप उस निर्देशिका में शॉर्टकट उस निर्देशिका में जा सकते हैं।

उदाहरण शॉर्टकट जानकारी:

लक्ष्य: C: \ Emacs \ बिन \ runemacs.exe "C: मेरी \ पसंदीदा \ \ फ़ोल्डर": सी: में

प्रारंभ \ मेरी \ पसंदीदा \ फ़ोल्डर

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