Emacs এক্সটেনসিবিলিটির কিচেন সিংক। এটি প্রাথমিকভাবে ন্যানোর মতো একটি সহজ টেক্সট এডিটর হিসেবে তৈরি হয়েছিল। আজকাল Emacs প্রায়শই একটি লিস্প ইন্টারপ্রেটার হিসেবে চিন্তা করা হয় যা প্রায় সব কিছু করতে পারে।
Emacs আপনার ওয়েব ব্রাউজার, মিউজিক প্লেয়ার, এবং আপনার উইন্ডো ম্যানেজারও হতে পারে। এই আর্টিকেলে, আমরা পাঁচটি প্যাকেজ নিয়ে আলোচনা করব যা আপনার প্রোডাক্টিভিটি উন্নত করতে পারে এবং কীভাবে সেগুলো ভ্যানিলা Emacs-এ ইনস্টল করতে হয়।
ভ্যানিলা Emacs
Emacs-এর একটি মিনিমাল ইনস্টলেশন, অধিকাংশ ক্ষেত্রে, ইতিমধ্যে ফিচার-কমপ্লিট। এটি একটি সহজ-টু-অ্যাপ্রোচ টিউটোরিয়াল রয়েছে যা এটিকে টেক্সট এডিটর হিসেবে ব্যবহার করার বেসিক শেখায়।
এছাড়া এর একটি পাওয়ারফুল ডকুমেন্টেশন মোড রয়েছে যা এর প্রতিটি ফাংশন বর্ণনা করে। সবচেয়ে آخرে, অন্যদের মধ্যে, Emacs-এ একটি পাওয়ারফুল প্যাকেজ ম্যানেজমেন্ট সিস্টেম রয়েছে যা আমাদের থার্ড-পার্টি এক্সটেনশন ইনস্টল করতে দেয় নিজের ভিতর থেকে।
Emacs প্যাকেজ ইনস্টল করার পদ্ধতি
Emacs-এ থার্ড-পার্টি প্যাকেজ ইনস্টল করা তুলনামূলকভাবে সহজ। শুধু কমান্ড বাফার খুলুন এবং একটি কমান্ড টাইপ করুন। Alt + x চাপুন এবং list-packages টাইপ করুন। এটি একটি উইন্ডো খুলবে যা সকল উপলব্ধ প্যাকেজ দেখাবে যেগুলো আপনি ইনস্টল করতে পারেন।
এই উইন্ডোটি একটি স্ট্যান্ডার্ড Emacs বাফারের মতো বिहেভ করে। এর মধ্যে সার্চ করুন Ctrl + s দিয়ে এবং 무ভ করুন স্ট্যান্ডার্ড Emacs মুভমেন্ট কন্ট্রোলস দিয়ে, যেমন Ctrl + n এবং Ctrl + p।
এখন, list-packages-এ সফটওয়্যার ইনস্টল করতে শুধু Enter চাপুন বা লিস্টে প্যাকেজের নামে ক্লিক করুন। আমার কেসে, আমি ledger-mode প্যাকেজ ইনস্টল করতে চেয়েছিলাম।
সেটির জন্য, আমি প্যাকেজের নাম সার্চ করলাম যা ইনস্টল করতে চেয়েছিলাম। একবার সিলেক্ট হলে, আমি Enter চাপলাম একটি আলাদা বাফার খোলার জন্য যা প্যাকেজের ডিটেইলস দেখায়।
এই বাফারে, আপনি নির্দিষ্ট প্যাকেজ সম্পর্কে তথ্য দেখতে পাবেন। এটি সেটিও জায়গা যেখানে আমরা প্যাকেজ ইনস্টল করি। এটি করতে হয় কাসরকে সেটি বাফারে মুভ করে Ctrl + x + o দিয়ে এবং Enter চাপা 'Install' বাটনে বা মাউস দিয়ে "Install" বাটনে ক্লিক করে।
ELPA এবং MELPA: Emacs-এর প্যাকেজ রিপোজিটরি
একটি গুরুত্বপূর্ণ বিষয় নোট করতে হবে যে Emacs-এ তার প্যাকেজের জন্য দুটি বড় সোর্স রয়েছে। প্রথমটি, ELPA, হলো Emacs Lisp Package Archive, Emacs ডেভেলপাররা সরাসরি মেইনটেইন করা একটি প্যাকেজ রিপোজিটরি।
ELPA অধিকাংশ ক্ষেত্রে বেসিক এবং স্টেবল প্যাকেজ ধারণ করে যেগুলো হয় ডেভেলপাররা সরাসরি মেইনটেইন করে বা অধিকাংশ Emacs ইউজাররা ব্যবহার করে।
দ্বিতীয় রিপোজিটরি, অন্যদিকে, হলো Milkypostman's Emacs Lisp Package Archive (MELPA)। ব্র_ORDER Emacs কমিউনিটি সক্রিয়ভাবে এই থার্ড-পার্টি রিপোজিটরি মেইনটেইন করে যেটে Emacs-এর জন্য উপলব্ধ প্রায় সব, যেকোনো প্যাকেজ থাকে। এটি নতুন প্যাকেজ ভার্সনসের জন্য কনস্ট্যান্টলি আপডেট হয়।
তবে, MELPA Emacs-এ ডিফল্ট নয়। আপনার Emacs ইনস্টলেশনে রিপোজিটরি যোগ করতে, আপনার "init.el" ফাইলে নিচের লাইনগুলো যোগ করুন:
(require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize)
এই লিস্প কোডটি প্রথমে Emacs-এ "package.el" প্যাকেজ লোড করে। এরপর এর ইন্টারনাল আর্কাইভ লিস্টকে "add-to-list" ফাংশন দিয়ে মডিফাই করে। আমাদের কেসে, আমরা MELPA আর্কাইভ এবং এর URL Emacs-এর জন্য যোগ করছি।
সর্বশেষ কমান্ড যা আমরা এক্সিকিউট করছি সেটি package-initialize। এটি ইন্ডিকেট করে যে আমরা এখন "package.el" প্যাকেজ শুরু করছি এবং Emacs এখন ELPA এবং MELPA উভয়ই লোড করতে পারে।
নিচে পাঁচটি উপকারী Emacs প্যাকেজের বর্ণনা দেওয়া হলো।
১. Org Mode
Org Mode একটি ব্যাপক প্রোগ্রাম। এর কোরে, এটি Emacs-এর জন্য একটি শিডিউলিং এবং অর্গানাইজেশন মোড যেটে একটি ইণ্টিউইটিভ এবং ফিচার-রিচ সিনট্যাক্স রয়েছে যা আপনাকে ক্লিন এবং স্ট্রাকচারড টাস্ক ট্র্যাকিং করতে দেয়।
এই সিনট্যাক্সটিকে অনেক Emacs ইউজাররা নোট-টেকিং এবং পাবলিশিং-এও অডপ্ট করেছে। org-export-dispatch ফিচারটি আপনাকে আপনার org ফাইলগুলোকে çeşitবিধ ফরম্যাটে ক্রস-এক্সপোর্ট করতে দেয়, যেমন LaTeX, HTML এবং OpenDocument।
আরও, Org Mode অত্যন্ত এক্সটেনসিবল। Org ইউজাররা এই মোডকে বিভিন্ন প্রোগ্রাম এবং নতুন ফিচার ও এক্সটেনশন-এ অডপ্ট করেছেন।
Org mode ELPA রিপোজিটরি থেকে পান। একবার ইনস্টল হলে, আপনি অবিলম্বে Org mode ব্যবহার শুরু করতে পারেন .org ফাইল তৈরি করে।
২. Magit
আপনি যদি প্রোগ্রামার হন, তবে আপনি ইতিমধ্যে git ভার্সন কন্ট্রোল সিস্টেম সম্পর্কে অবগত হতে পারেন, একটি প্রোগ্রাম যা একটি নির্দিষ্ট ফাইল সেটের পরিবর্তন ট্র্যাক করতে দেয়। এটি সফটওয়্যার ডেভেলপমেন্টে অত্যন্ত উপকারী যেখানে আপনি একই ফাইলের একাধিক ভার্সন চান সহজে ডিবাগ ও ডিপ্লয় করার জন্য।
Magit Emacs-এর জন্য একটি git ক্লায়েন্ট। এটি একটি ফুল-ফিচার্ড প্রোগ্রাম যা আপনাকে আপনার git রিপোজিটরি Emacs-এর ভিতর থেকে ম্যানেজ করতে দেয়। একটি প্রধান ফিচার হলো আপনাকে সিমলেসলি ফাইল কমিট করতে এবং কমিট ইতিহাস ট্রাভার্স করতে দেয় জব আপনি বাফারের ভিতরে এডিট করছেন।
Magit Emacs-এ git-সম্পর্কিত যেকোনো কিছুর জন্য वन-স্টপ-শপ। শুধু এই কারণেই, Magit প্রোগ্রামারদের জন্য যারা Emacs ব্যবহার করেন, সবচেয়ে ফলপ্রসূ প্যাকেজগুলোর একটি।
আপনি Magit MELPA রিপোজিটরি থেকে পেতে পারেন।
৩. Evil Mode
Evil মানে Extensible Vi Layer, একটি মোড যা আপনাকে Emacs-এ Vim-স্টাইল কিবایندিং আডপ্ট করতে দেয়। এটি উপকারী যদি আপনি Emacs-এ আসার আগে ইতিমধ্যে একজন প্রলিফিক Vim ইউজার হন। এতে সকল বেসিক Vi মোশন কী এবং অতিরিক্ত Vim কী থাকে, যেমন ciw, ci" এবং ci<।
এটি লক্ষ্য করতে গুরুত্বপূর্ণ যে Evil Emacs-এর সকল ডিফল্ট কিবাইনডিং রিপ্লেস করবে না। Evil-এর আচরণ শেল-এ set -o vi সেট করার মতো। এটি শুধু Emacs-এর উপরে একটি Vi এমুলেশন লেয়ার যোগ করে, যাতে আপনি এখনও ডিফল্ট কিবাইনডিং ব্যবহার করতে পারেন, যেমন Alt + x, Ctrl + x এবং Ctrl + f।
Evil MELPA রিপোজিটরিতে উপলব্ধ, এবং আপনার Emacs ক্লায়েন্টের জন্য এটি ইনস্টল করা তুলনামূলকভাবে সহজ। একবার ইনস্টল হলে, আপনাকে শুধু আপনার init.el-এ কয়েক লাইন কোড যোগ করতে হবে এটি শুরু করার জন্য:
(require 'evil) (evil-mode 1)
৪. Focus Mode
Focus Emacs-এর জন্য একটি সহজ এক্সটেনশন যা আপনি যে টেক্সটে কাজ করছেন সেটি হাইলাইট করে অ-সিলেক্টেড টেক্সটের রং একটিভলি পরিবর্তন করে।
আরও, Focus ইন্টেলিজেন্টলি টেক্সটের ভিন্ন সেগমেন্ট এবং ফর্ম হাইলাইট করে। Focus এসেই-লাইক রাইটিং-এ কাজ করতে পারে যা সেন্টেন্স এবং প্যারাগ্রাফ ব্যবহার করে, কিন্তু এটি প্রোগ্রামিং-লাইক রাইটিং-এও কাজ করতে পারে যা ফাংশন এবং ব্র্যাকেট ব্যবহার করে।
এই কারণে, Focus লেখক এবং প্রোগ্রামারদের জন্য বিশেষভাবে উপকারী যারা চান যে প্যারাগ্রাফ বা কোড ব্লকে সে কাজ করছে সেটি আউটস্ট্যান্ডিং দেখাবে।
Focus MELPA রিপোজিটরিতে উপলব্ধ। একবার ইনস্টল হলে, সহজে এক্টিভেট করতে পারেন Alt + x চাপা এবং focus-mode টাইপ করে কমান্ড বাফারে।
৫. Darkroom
Focus-এর মতো, Darkroom একটি "ফোকাস-ওরিয়েন্টেড" এক্সটেনশন। তবে, এটি লেখকদের দিকে বেশি ঝুঁকি। Darkroom একটি ডিসট্র্যাকশন-ফ্রি এনভায়রনমেন্ট তৈরি করে Emacs ফ্রেমের চারপাশের সমস্ত অপ্রয়োজনীয় তথ্য রিমুভ করে, যার মধ্যে মেনু বার, স্ক্রল বার এবং মোড লাইন।
আরও, Darkroom টেক্সটকে ৮০ কলামের আশেপাশে সেন্ট্র করে এবং কন্টেইন করে। এটি নিবন্ধ রচনা এবং প্রুফরিডিং-এর জন্য বিশেষভাবে উপকারী, কারণ এটি চোখকে স্ক্রিনের একটি সিঙ্গেল সেগমেন্টে নির্দেশ করে, টেক্সটকে পড়া সহজ করে।
Darkroom কাস্টমাইজও করা যায়। টেক্সটের ডিফল্ট মার্জিন এডজাস্ট করুন darkroom-increase-margins এবং darkroom-decrease-margins ইনভোক করে।
Darkroom ELPA রিপোজিটরিতে উপলব্ধ, এবং মোডটি সহজে ইনেবল করা যায় Alt + x চাপা এবং কমান্ড বাফারে darkroom-mode টাইপ করে।
অভিনন্দন! আপনি এখন কিছু উপকারী Emacs প্যাকেজ সম্পর্কে জানেছেন যা আপনার প্রোডাক্টিভ ওয়ার্কফ্লো উল্লেখযোগ্যভাবে উন্নত করতে পারে। লিনাক্সে প্রোডাক্টিভিটি উন্নত করার কিছু সিম্পল ট্রিক জানতে চাইলে, এই আর্টিকেলটি চেক করুন।
প্রশ্নোত্তর
১. MELPA ব্যবহার করার নিরাপদ?
হ্যাঁ! শুধু কিছু সিলেক্টেড মেইনটেইনারই MELPA আর্কাইভে প্যাকেজ যোগ করতে পারে। একটি প্যাকেজ সাবমিট করতে, ডেভেলপারকে আর্কাইভের মেইনটেইনারদের কাছে একটি পুল রিকোয়েস্ট সাবমিট করতে হবে। এরপর, প্যাকেজটি মেইনটেইনাররা চেক এবং অপ্রুভ করতে হবে। এই প্রক্রিয়াটি নিশ্চিত করে যে MELPA-এ সকল প্যাকেজ রे귲ার ইউজার ব্যবহার করার জন্য নিরাপদ।
২. MELPA ওয়েবসাইট বললো যে সেটি যেসব প্যাকেজ অফার করে সেগুলো ব্লিডিং-এজ। কি আমার প্যাকেজগুলো ব্রেক হতে পারে?
এটি হওয়ার চান্স খুব কম। MELPA-র প্যাকেজগুলো কনস্ট্যান্টলি বিল্ড হয়ে চেক করা হয় কি সেগুলো কাজ করছে।
তবে, যদি প্যাকেজ ব্রেক হওয়ার স্লিম সম্ভাবনা একটি চিন্তা হয়, MELPA তাদের আর্কাইভের একটি স্টেবল ব্রাঞ্চ অফার করে যা কম ফ്രീকোয়েন্টলি আপডেট হয়। এখানে প্যাকেজগুলো করেন্ট Emacs ভার্সনের সাথে টেস্ট করা হয়েছে। MELPA-Stable রিপোজিটরি ব্যবহার করতে, আপনার "init.el" ফাইল আপডেট করুন:
(require 'package) (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) (package-initialize)
৩. আমি এই প্যাকেজ আর চাই না। Emacs-এ প্যাকেজ আনইনস্টল করার পদ্ধতি কী?
list-packages পেজের নিচে, আপনি ইনস্টল্ড প্যাকেজগুলো দেখতে পাবেন। আপনি সেগুলো সার্চও করতে পারেন Ctrl + s চাপা এবং "installed" টাইপ করে।
একবার আপনি আনইনস্টল করার প্যাকেজটি পিক করলে, Enter চাপুন এবং ডেসক্রিপশন বাফারে "Delete" বাটনে ক্লিক করুন। Emacs অটোমেটিক্যালি সিস্টেম থেকে প্যাকেজটি রিমুভ করবে।
একটি বিষয় লক্ষ্য করুন, যsåহ 이것이 প্রক্রিয়া আপনার init.el ফাইলে করা যেকোনো কনফিগারেশন রিমুভ করবে না। উদাহরণস্বরূপ, আপনি যদি একটি স্পেসিফিক প্যাকেজ X-র জন্য কনফিগারেশন যোগ করে থাকেন, আপনাকে সেটি ম্যানুয়ালি রিমুভ করতে হবে।