मैं अपना $ EDITOR पर्यावरण चर कैसे खोजूं और सेट करूं?


27

जब मैं ipython या ipython3 का उपयोग कर रहा हूं, तो मैं अपने python स्क्रिप्ट को लिखने के लिए संपादक को खोलने के लिए% edit कमांड का उपयोग कर सकता हूं। मेरी समस्या यह है कि डिफ़ॉल्ट संपादक vim है और मुझे वास्तव में इस संपादक का उपयोग करने का तरीका नहीं मिला। मैं संपादक को नैनो या गेडिट में बदलना चाहता हूं। मुझे लगता है कि टर्मिनल के साथ रहना मुझे नैनो संपादक में बदलना पसंद होगा।

जब मैं 'संपादन' में टाइप करता हूँ? यह कहते हैं कि ipython टर्मिनल में कमांड:

% संपादित करें IPython के संपादक हुक को चलाता है। इस हुक का डिफ़ॉल्ट संस्करण आपके $ EDITOR पर्यावरण चर द्वारा निर्दिष्ट संपादक को कॉल करने के लिए सेट है। यदि यह नहीं पाया जाता है, तो यह लिनक्स / यूनिक्स के तहत vi के लिए और विंडोज के तहत नोटपैड को डिफ़ॉल्ट करेगा। संपादक हुक को बदलने के तरीके के लिए इस दस्तावेज़ का अंत देखें।

फिर जब मुझे उस डॉकस्ट्रिंग का अंत दिखाई देता है तो मैं यह देखता हूं:

डिफ़ॉल्ट संपादक हुक बदलना:

यदि आप अपना स्वयं का संपादक हुक लिखना चाहते हैं, तो आप इसे एक कॉन्फ़िगरेशन फ़ाइल में रख सकते हैं जिसे आप स्टार्टअप समय पर लोड करते हैं। डिफ़ॉल्ट हुक IPython.core.hooks मॉड्यूल में परिभाषित किया गया है, और आप इसे आगे के संशोधनों के लिए एक प्रारंभिक उदाहरण के रूप में उपयोग कर सकते हैं। उस फ़ाइल में सामान्य निर्देश भी होते हैं कि आपने इसे परिभाषित करने के बाद उपयोग के लिए एक नया हुक कैसे सेट किया है।

इस तरह के नौसिखिया होने के लिए क्षमा करें, लेकिन मैं यहां खो जाता हूं। मुझे यकीन नहीं है कि IPython.core.hooks मॉड्यूल को कैसे प्राप्त किया जाए, या बस नैनो के लिए एक पर्यावरण चर $ EDITOR सेट किया जाए।

कोई सुझाव?

जवाबों:


37

आप $EDITORइस कमांड के साथ वैरिएबल सेट कर सकते हैं :

export EDITOR="/usr/bin/nano"

यह EDITORवर्तमान सत्र के लिए चर को परिभाषित करेगा और इसे अपने सभी बच्चे प्रक्रियाओं के वातावरण में पारित करेगा। इसे स्थायी रूप से सेट करने के लिए आपको सिस्टम कॉन्फ़िगरेशन फ़ाइलों में से एक में इसे परिभाषित करना होगा। उच्चतम स्तर जिस पर आप यह कर सकते हैं वह इसे सेट करना है /etc/environment। यह विश्व स्तर पर इसे परिभाषित करता है:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EDITOR="/usr/bin/nano"

जांचें कि चर परिभाषित किया गया है:

$ echo $EDITOR
/usr/bin/nano

संपादक का ध्यान दें: अक्सर अपने आप में पर्यावरण चर डालना बेहतर ~/.profileहोता है, जो कि कुछ गलत होने पर ठीक करना बहुत आसान है।


मैंने अपने / etc / पर्यावरण फ़ाइल में 'EDITOR = "/ usr / bin / nano" लाइन जोड़ी, लेकिन यह काम नहीं करता है। क्या मुझे रिबूट करने की आवश्यकता है?
विलोज़ी

अब अपने सिस्टम को रिबूट करें और सेटिंग्स लागू होंगी।
Danatela

एक नया सत्र शुरू करें और आप कर रहे हैं!
लुइस सिकोट

3
प्रभावी source /etc/environmentहोने के लिए आपको रिबूट करने की आवश्यकता नहीं है, फ़ाइल को संपादित करने के बाद ही चलें ।
cremefraiche

@ cremefraiche मुझे डर है कि गलत है। यह एक स्क्रिप्ट फ़ाइल नहीं है, इसलिए आप इसे "स्रोत" नहीं कर सकते। यह अन्य सामान्य कॉन्फ़िगरेशन फ़ाइलों के लिए सही होगा जैसे कि .profile। सबसे अच्छा आप जो कर सकते हैं वह है लॉगआउट और वापस लॉगिन। वह एकमात्र समय है जब फ़ाइल पढ़ी जाती है। इस छोटे खंड को पढ़ें: help.ubuntu.com/community/…
Haggra

18

लाइन जोड़ें

export EDITOR=nano

अपने ~/.profileऔर ~/.bashrcनिम्नलिखित चित्र में। करो नहीं उद्धरण के आसपास डालnano

यहाँ छवि विवरण दर्ज करें

और फिर चला

source ~/.profile 
source ~/.bashrc

संशोधित करने के बाद प्रॉम्प्ट पर .profileऔर .bashrcप्रभावी होने के लिए संशोधन के लिए।

यहाँ छवि विवरण दर्ज करें

अब %editमें ipythonखुल जाएगा nano

~/.bashrc के लिए बुलाया जाएगा interactive + non-loginshell

जबकि के ~/.profileलिए बुलाया जाएगाinteractive + login shell

आपके मामले में यह ~/.bashrcइसके बजाय इसे जोड़ने के लिए पर्याप्त है ~/.profile


1
.bashrcकेवल बैश-विशिष्ट सेटिंग (जैसे, खोल विकल्प, उपनाम, आदि) थोड़ी देर के लिए इस्तेमाल किया जाना चाहिए .profileकी तरह वातावरण चर स्थापित करने के लिए इस्तेमाल किया जाना चाहिए EDITOR(जो इस तरह के रूप कार्यक्रमों के द्वारा प्रयोग किया जाता है sudoedit, git, आदि)। Unix.stackexchange.com/a/3085/22812 और unix.stackexchange.com/a/42765/22812
एंथनी जी - मोनिका के लिए न्याय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.