প্রথমে আপনাকে ইমাস দিয়ে অপারেটিং বেসিক পাঠ শিখতে হবে। যেহেতু ইম্যাকগুলি খুব সহজেই কীভাবে পাঠ্য এবং অনুলিপি নির্বাচন করতে হয় তা খুঁজে বের করা খুব চ্যালেঞ্জপূর্ণ হতে পারে। সুতরাং কীভাবে এটি দক্ষতার সাথে করবেন তা সন্ধানের জন্য কিছুটা সময় বিনিয়োগ করুন। ম্যানুয়ালটি পড়া সাহায্য করতে পারে। ম্যাক ওএস এক্স অ্যাকোম্যাকস ব্যবহারের জন্য, এটি নেটিভ শর্টকাটকে সমর্থন করে।
ইএসএসের সাথে কাজ করা আর এর সাথে কাজ করা থেকে আলাদা নয় organiz সাংগঠনিক কোডের জন্য একই নিয়মগুলি প্রয়োগ করা উচিত। আমার ক্ষেত্রে প্রতিটি প্রকল্পের নিজস্ব ডিরেক্টরি রয়েছে, যা আর্ট নামে অভিভাবক ডিরেক্টরিতে থাকে যা আমার হোম ডিরেক্টরিতে রয়েছে (উইন্ডোজের জন্য, আমি ইমাস হোম ডিরেক্টরিটি ডিরেক্টরিতে নির্দেশ করি যেখানে আপনার সমস্ত উত্স থাকে)। সুতরাং যখন আমি প্রকল্পটিতে কাজ করার জন্য ESS ব্যবহার করি আমি সর্বদা করি M-x R
এবং প্রারম্ভিক ডিরেক্টরিটি আমার প্রকল্প ডিরেক্টরিটি নির্বাচন করি।
আর প্রক্রিয়া শুরু করার পরে, আমি সাধারণত দুটি উইন্ডোতে ইমাস বিভক্ত করি (ইমাস টার্মিনোলজি)। তারপরে বামে আমার একটি সোর্স কোড রয়েছে যা আমি ডানদিকে আর প্রসেসে প্রেরণ করি। প্রাসঙ্গিক শর্টকাটগুলি (এগুলি ইমাক শর্টকাটগুলি) বর্তমান বিফারটিকে একমাত্র উইন্ডো তৈরি করার জন্য এবং উইন্ডোগুলি অনুভূমিকভাবে বিভক্ত করার জন্য উইন্ডোটিকে C-x 3
উল্লম্বভাবে বিভক্ত করার জন্য।C-x 1
C-x 2
আর-তে কোড প্রেরণ করার সময়, আমি ফাংশন এবং আর স্টেটমেন্টের মধ্যে পার্থক্য রাখি। আমি আমার সমস্ত ফাংশন সাধারণত একটি ফাইল রেখে দিয়ে থাকি 10code.R
। তারপরে আমি লোড ইএসএস ফাইল বিকল্প (শর্টকাট C-c C-l
) ব্যবহার করে এই ফাইলটি লোড করতে পারি । এই পদ্ধতির সুবিধা হ'ল এটি সমস্ত ফাংশন উত্স করে এবং আর বাফারে কিছুই উত্পাদন করে না। আপনার কোডটিতে যদি কোনও ত্রুটি হয় তবে ESS মিনি মিনিটে একটি বার্তা দেখায় এবং আপনি এটি টিপতে এটি তদন্ত করতে পারেন C-c
`
অন্য কোডটি হ'ল আর স্টেটমেন্টস, যা আমি স্ব-ব্যাখ্যামূলক রাখার চেষ্টা করি: লোড ডেটা, পরিষ্কার ডেটা, পরিসংখ্যানের মডেলটি ফিট করে, ফলাফলগুলি পরীক্ষা করে, চূড়ান্ত ফলাফল দেয়। এই বিবৃতিগুলির উত্স কোডটি প্রকল্পের বর্তমান অবস্থা। অভিপ্রায়টি হ'ল প্রকল্পটি শেষ হয়ে যাওয়ার পরে, এই কোড দিয়ে ফাইলগুলি সোর্সিং করে, প্রকল্পটি পুনরুত্পাদন করে (আমি ইতিহাসের সন্ধানের জন্য গিটও ব্যবহার করি)। এই ফাইলটির সাথে কাজ করার সময়, আমি সাধারণত কেবলমাত্র একটি আর স্টেটমেন্ট দিয়ে কাজ করি, যা আমি আর প্রসেসে ইভাল ফাংশন, অনুচ্ছেদ, বিবৃতি কমান্ডের মাধ্যমে প্রেরণ করি যা শর্টকাট C-c C-c
। এই কমান্ডটি অনুচ্ছেদে প্রক্রিয়াকরণে প্রেরণ করে, অর্থাত পাঠ্য যা নতুন রেখাগুলির দ্বারা সীমিত করা হয়। এটি সুবিধাজনক, যেহেতু আপনি আর স্টেটমেন্টগুলিকে কার্যগুলিতে গ্রুপবদ্ধ করতে পারেন এবং পুরো টাস্কটিকে আর প্রক্রিয়াতে প্রেরণ করতে পারেন। এটির জন্য পাঠ্য নির্বাচন করাও প্রয়োজন হয় না, এটি খুব সুবিধাজনক। শর্টকাটC-c C-c
এর সুবিধা রয়েছে যে এটি কার্সারটিকে আর উইন্ডোতে নিয়ে যায়, সুতরাং আপনি তাত্ক্ষণিক প্রেরিত আর স্টেটমেন্টের ফলাফলগুলি পরীক্ষা করতে পারবেন।
সুতরাং আমার প্রাথমিক কর্মপ্রবাহটি উইন্ডো এবং বাফারগুলির মধ্যে অনেকটা এগিয়ে চলেছে। এটির সুবিধার্থে আমি আমার .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
, তবে অন্যরা খুব ঘন ঘন। আমি ব্যবহার করি এমন অন্যান্য নির্দিষ্ট ESS সেটিংস নিম্নলিখিত:
(setq comint-input-ring-size 1000)
(setq ess-indent-level 4)
(setq ess-arg-function-offset 4)
(setq ess-else-offset 4)
এটি ESS কে ট্যাব 4 টি অক্ষর প্রশস্ত করতে বলে (ডিফল্টটি 2), যা আমার ব্যক্তিগত পছন্দ এবং আপনার জারি করা আদেশগুলি ESS ইতিহাস হিসাবে সংরক্ষণ করে তার সংখ্যা প্রসারিত করে।
সরাসরি আর প্রক্রিয়া নিয়ে কাজ করার জন্য আমি নিম্নলিখিত শর্টকাটগুলি খুব দরকারী বলে খুঁজে পেয়েছি:
(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)
এই পদ্ধতিতে ESS সর্বদা জিজ্ঞাসা করে আর প্রক্রিয়ায় বাফারে পাঠ্যটি কোথায় সংরক্ষণ করতে হবে। আমি সাধারণত তারিখ অনুসারে এই ফাইলগুলি সংখ্যা করে থাকি, তাই আমি ঠিক কী করছিলাম তা ট্র্যাক করার আমার কাছে অন্য একটি উপায় রয়েছে। এই বিকল্পটির একমাত্র সতর্কতা হ'ল কোনও কারণে ইএসএস আর লোড করার পরে আর বাফারটি কেবল পড়ার জন্য সেট করে buff বাফার লিখিতযোগ্য করার শর্টকাটটি C-x C-q
।
সুতরাং এগুলি আমার সেটিংস যা আমি ইএসএসের সাথে কাজ করার জন্য ব্যবহার করি, সেগুলি নিয়ে আমি খুশী বোধ করি এবং কয়েক বছরের জন্য আমি ইতিমধ্যে কিছু যুক্ত করার প্রয়োজন বোধ করি না। প্রথমবারের ব্যবহারকারীদের কাছে ইএসএস প্রবর্তন করার সময় আমি সাধারণত এই ওভারভিউটি দিই।
আমি চূড়ান্ত শর্টকাট দিয়ে শেষ করব যা ইমাক্স এবং বিশেষত ইএসএসের সাথে কাজ করার সময় আমার জন্য সবচেয়ে বেশি ব্যবহৃত শর্টকাট C-g
যা মিনি-বাফারে কমান্ডটি প্রস্থান করে। সারা বছর ধরে আমি ইমাসস এবং ইএসএসের সাথে কাজ করি আমি এখনও কিছু ইম্যাক কমান্ডটি পরিচালনা করতে পারি যা আমি চাইনি, C-g
এই পরিস্থিতিতে খুব সহায়ক।