2009-06-05 18 views
13

मेरी बैश इनिट स्क्रिप्ट (~/.profile) में महत्वपूर्ण प्रारंभिकताएं हैं, लेकिन जब भी मैं शेल-कमांड का उपयोग करता हूं या emacs में संकलित करता हूं, तो init फ़ाइल पढ़ी नहीं जाती है, और उन शुरुआतीकरण के बिना emacs में मेरे बैश कमांड विफल हो जाएंगे :(कैसे करें मैं emacs को शेल-कमांड के लिए उपयोग कर रहे शेल के लिए अपनी init फ़ाइल निष्पादित करने के लिए मजबूर करता हूं?emacs shell स्वचालित रूप से init फ़ाइल निष्पादित करने के लिए कैसे करें?

स्पष्टीकरण: मैं एमएक्स खोल के बारे में बात नहीं कर रहा हूं, जो मेरी init फ़ाइल को ठीक करता है जब मैं symlinked .profile to .emacs_bash।

उत्तर

22

अपने ~/.bashrc फ़ाइल में अपने प्रारंभ दिनचर्या ले जाएँ

तब पंक्ति जोड़ें

source ~/.bashrc 

आपकी ~/.bash_profile फ़ाइल में। विस्तृत विवरण के लिए bash man page देखें, जब स्टार्टअप फ़ाइलों को लोड किया जाता है। कुंजी एक इंटरैक्टिव और गैर-सहभागी खोल, और साथ ही एक लॉगिन और एक गैर लॉगिन खोल के बीच अंतर के बीच अंतर है।

सामान्य तौर पर, .bash_profile जब एक खोल का उपयोग कर प्रणाली में प्रवेश करने जब एक नया खोल (ओएस एक्स टर्मिनल एप्लिकेशन इस नियम का एक अपवाद के रूप में यह प्रत्येक नए टर्मिनल उदाहरण के लिए .bash_profile चलाता है) शुरू करते समय .bashrc चलाया जाता है चलाया जाता है। लेख प्रपत्र में अधिक जानकारी के लिए, look here.

+1

मैंने अपने .profile दोनों को .bashrc और .bash_profile को सिम्लिंक किया। अभी भी काम नहीं लग रहा है। क्या emacs एक इंटरैक्टिव या गैर-इंटरैक्टिव खोल शुरू करते हैं? मैंने स्पष्ट-बैश-Args में --login जोड़ने का भी प्रयास किया, और अभी भी कोई भाग्य नहीं है। – polyglot

+1

आह, अब मैं अपने Emacs खोल फिर से प्यार कर सकते हैं! धन्यवाद! : डी –

+0

@DanFilimon यह मेरी समस्या का पूरा समाधान भी था! :) Emacs खोल अब एनवीएम के साथ काम करता है! – geoyws

2

elisp स्रोत के माध्यम से खोदना; ऐसा लगता है कि emacs में शेल-कमांड बस मेरे मामले में bash -c "कमांड" निष्पादित करता है। समाधान emacs (emacs &) को एक खोल में शुरू करना है जहां मेरा .profile पहले से ही निष्पादित किया गया है (मेरे विंडोज मैनेजर के जीयूआई मेनू से emacs शुरू करने के बजाय)।

+0

धन्यवाद, बहुभाषी, एक टर्मिनल से emacs शुरू करने के लिए भी मेरे लिए काम किया। – Upgradingdave

5

मै मैक का उपयोग कर रहा हूं, शेल-कमांड निष्पादित नहीं किया गया। Bashrc, न ही .bash_profile, मैंने अपनी पाथ समस्या को हल करने के लिए एक समाधान को गुगल किया।

अपने .emacs में डाल इस: (setenv "PATH" (शेल-आदेश-से-स्ट्रिंग "स्रोत ~/.bashrc; -n $ पथ गूंज"))

और अधिक विस्तार के लिए देखें: How to make emacs to run my ~/.bash_profile

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