पहले आपको emacs के साथ मूल पाठ को सीखना होगा। चूंकि emacs बहुत परिष्कृत हैं, यह पता लगाना कि कैसे पाठ और कॉपी का चयन करना एक चुनौती हो सकती है। तो कुछ समय यह पता लगाने में लगाएं कि कैसे कुशलतापूर्वक किया जाए। मैनुअल पढ़ने से मदद मिल सकती है। मैक ओएस एक्स के लिए एक्वामाक्स का उपयोग करें, यह देशी शॉर्टकट का समर्थन करता है।
ईएसएस के साथ काम करना आर के साथ काम करने से अलग नहीं है। कोड के आयोजन के लिए समान नियम लागू होने चाहिए। मेरे मामले में हर परियोजना की अपनी एक निर्देशिका होती है, जो R नाम की मूल निर्देशिका में रहती है, जो कि मेरी होम डाइरेक्टरी में है (For Windows, मैं एमएसीएस होम डाइरेक्टरी को उस डायरेक्टरी में इंगित करने की सलाह देता हूँ जहाँ आपका सारा स्रोत रहता है)। इसलिए जब मैं ईएसएस का उपयोग उस परियोजना पर काम करने के लिए करता हूं जो मैं हमेशा करता हूं M-x R
और शुरुआती निर्देशिका मेरी परियोजना निर्देशिका का चयन करता हूं।
आर प्रक्रिया शुरू करने के बाद, मैं आमतौर पर इमैक को दो विंडो (इमैक शब्दावली) में विभाजित करता हूं। फिर बाईं ओर मेरे पास एक स्रोत कोड है, जिसे मैं दाईं ओर आर प्रक्रिया में भेजता हूं। प्रासंगिक शॉर्टकट (ये इमैक शॉर्टकट हैं) C-x 3
खिड़कियों को ऊर्ध्वाधर रूप से विभाजित करने के लिए हैं , C-x 1
वर्तमान बफर को केवल खिड़की के लिए और C-x 2
क्षैतिज रूप से खिड़कियों को विभाजित करने के लिए।
आर को कोड भेजते समय, मैं फ़ंक्शन और आर स्टेटमेंट के बीच अंतर रखता हूं। मैं अपने सभी कार्यों को एक फाइल में रखता हूं जिसे आमतौर पर कहा जाता है 10code.R
। फिर मैं लोड ईएसएस फ़ाइल विकल्प (शॉर्टकट C-c C-l
) का उपयोग करके बस इस फ़ाइल को लोड कर सकता हूं । इस दृष्टिकोण का लाभ यह है कि यह सभी कार्यों का स्रोत है और आर बफर में कुछ भी पैदा नहीं करता है। यदि आपके कोड में कोई त्रुटि है तो ESS मिनीबफ़र में एक संदेश दिखाता है और आप इसे दबाकर जांच कर सकते हैं C-c
`।
अन्य कोड आर स्टेटमेंट्स हैं, जिन्हें मैं स्व-व्याख्यात्मक रखने का प्रयास करता हूं: डेटा लोड करना, स्वच्छ डेटा, फिट सांख्यिकीय मॉडल, परिणामों का निरीक्षण करना, अंतिम परिणाम उत्पन्न करना। इन कथनों का स्रोत कोड परियोजना की वर्तमान स्थिति है। अभिप्राय यह है कि परियोजना समाप्त होने के बाद, इस कोड के साथ फाइलों को सोर्स करना, प्रोजेक्ट को पुन: पेश करता है (मैं ट्रैकिंग इतिहास के लिए गिट का उपयोग भी करता हूं)। इस फाइल के साथ काम करते समय, मैं आमतौर पर केवल एक आर स्टेटमेंट के साथ काम करता हूं, जिसे मैं eval फ़ंक्शन, पैराग्राफ, स्टेटमेंट कमांड के माध्यम से आर प्रोसेस में भेजता हूं जो शॉर्टकट है C-c C-c
। यह कमांड R को पैराग्राफ अर्थात पाठ को भेजती है जिसे नई लाइनों द्वारा सीमांकित किया जाता है। यह आसान है, क्योंकि आप कार्यों में R कथनों को समूहबद्ध कर सकते हैं, और पूरे कार्य को R प्रक्रिया में भेज सकते हैं। इसमें पाठ का चयन करने की भी आवश्यकता नहीं है, जो बहुत सुविधाजनक है। शॉर्टकटC-c C-c
यह फायदा है कि यह कर्सर को R विंडो में ले जाता है, इसलिए आप तुरंत भेजे गए R स्टेटमेंट के परिणामों का निरीक्षण कर सकते हैं।
इसलिए मेरा मूल वर्कफ़्लो विंडोज़ और बफ़र्स के बीच बहुत आगे बढ़ रहा है। इसकी सुविधा के लिए मैं अपने .emacs फ़ाइल में निम्न शॉर्टकट का उपयोग करता हूं:
(define-key global-map [f1] 'Control-X-prefix)
(define-key global-map [f3] 'find-file)
(define-key global-map [f2] 'save-buffer)
(define-key global-map [f8] 'kill-buffer)
(define-key global-map [f5] 'switch-to-buffer)
(define-key global-map [f6] 'other-window)
(define-key global-map [f9] 'ess-load-file)
मैं शायद ही कभी उपयोग करता हूं f1
, लेकिन सभी अन्य बहुत बार। मेरे द्वारा उपयोग की जाने वाली अन्य विशिष्ट ईएसएस सेटिंग्स निम्नलिखित हैं:
(setq comint-input-ring-size 1000)
(setq ess-indent-level 4)
(setq ess-arg-function-offset 4)
(setq ess-else-offset 4)
यह ईएसएस को टैब 4 वर्णों को चौड़ा करने के लिए कहता है (डिफ़ॉल्ट 2 है), जो मेरी व्यक्तिगत प्राथमिकता है, और आपके जारी किए गए आदेशों की संख्या को विस्तारित करता है, जो ईएसएस इतिहास के रूप में सहेजता है।
आर प्रक्रिया के साथ सीधे काम करने के लिए मुझे निम्नलिखित शॉर्टकट बहुत उपयोगी लगे:
(add-hook 'inferior-ess-mode-hook
'(lambda nil
(define-key inferior-ess-mode-map [\C-up] 'comint-previous-matching-input-from-input)
(define-key inferior-ess-mode-map [\C-down] 'comint-next-matching-input-from-input)
(define-key inferior-ess-mode-map [\C-x \t] 'comint-dynamic-complete-filename)
)
)
यह आपके आर स्टेटमेंट इतिहास के आर स्टेटमेंट को याद करता है, लेकिन यह इसे उसी के साथ मिलाने की कोशिश करता है जो पहले से ही आपकी लाइन पर है। इसलिए उदाहरण के लिए pl
आर प्रक्रिया में टाइप करना और दबाने \C-up
(जो नियंत्रण और ऊपर तीर है) उन सभी कथनों के माध्यम से चक्रित होगा जो इसके साथ शुरू होते हैं pl
, इसलिए उदाहरण के लिए सभी plot(...
आदेशों को याद करेंगे ।
ईएसएस के साथ मैं जो अंतिम सेटिंग का उपयोग करता हूं वह निम्नलिखित है:
(setq ess-ask-about-transfile t)
इस तरह से ईएसएस हमेशा पूछता है कि आर प्रक्रिया के साथ बफर में पाठ को कहां बचाया जाए। मैं आमतौर पर तारीख के अनुसार इन फ़ाइलों को नंबर देता हूं, इसलिए मेरे पास हमेशा यह ट्रैक करने का एक और तरीका है कि मैं वास्तव में क्या कर रहा था। इस विकल्प का एकमात्र विकल्प यह है कि किसी कारण से ईएसएस आर बफर को केवल पढ़ने के लिए सेट करता है, आर लोड करने के बाद बफर बफर बनाने का शॉर्टकट है C-x C-q
।
तो ये मेरी सेटिंग्स हैं जिनका उपयोग मैं ईएसएस के साथ काम करने के लिए करता हूं, मैं उनके साथ खुश महसूस करता हूं और मुझे पहले से ही कुछ के लिए कुछ भी जोड़ने की आवश्यकता महसूस नहीं हुई। पहली बार उपयोगकर्ताओं को ईएसएस शुरू करते समय मैं आमतौर पर यह अवलोकन देता हूं।
मैं अंतिम शॉर्टकट के साथ समाप्त हो जाऊंगा जो मेरे लिए सबसे अधिक इस्तेमाल किया जाने वाला शॉर्टकट है जब एमएसीएस के साथ काम करना और विशेष रूप से ईएसएस के साथ C-g
जो मिनी-बफर में कमांड को क्विट करता है। सभी वर्षों के माध्यम से मैं Emacs और ESS के साथ काम करता हूं मैं अभी भी कुछ Emacs कमांड को लागू करने का प्रबंधन करता हूं जो मैं नहीं चाहता था, C-g
इन स्थितियों में बहुत मददगार है।