আমি প্রায় ২৫ বছর লিনাক্স ব্যবহার করছি এবং তার আগে কয়েক বছর Unix। এই সময়ে, আমি কিছু টুলের প্রতি পছন্দ বিকাশ করেছি যা আমি প্রতিদিন ব্যবহার করি। সবচেয়ে গুরুত্বপূর্ণ টুলগুলির একটি যা আমি ব্যবহার করি তা হলো Vim এডিটর।
আমি ৯০-এর দশকে সোলারিস শিখতে Vi ব্যবহার শুরু করেছিলাম কারণ আমাকে বলা হয়েছিল যে এটি যেকোনো সিস্টেমে সবসময় উপলব্ধ থাকবে, যা আমার অভিজ্ঞতায় সত্য। আমি অন্যান্য এডিটরও চেষ্টা করেছি, এবং সেগুলো সব কাজ করে। যাহোক, আমি মনে করি Vim আমার জন্য সবচেয়ে ভালো কাজ করে, এবং আমি এতটাই বেশি ব্যবহার করি যে আমার Vim মাংসপেশী মেমরি আমাকে অন্যান্য এডিটরেও এর কমান্ড কীস্ট্রোকস ব্যবহার করার চেষ্টা করায়।
প্লাস, আমি শুধু Vim খুব পছন্দ করি।
অনেক কনফিগারেশন ফাইল Vi ব্যবহার করে Vim-এর বদলে, এবং আপনি vi কমান্ড রান করতে পারেন। যাহোক, vi কমান্ডটি vim-এ একটি লিঙ্ক।
অনেক লিনাক্স টুল Nano, Emacs, বা Vim অনুকরণকারী বা শুধু কল করার এডিটর ব্যবহার করে। কিছু অন্য টুল ইউজারদের – যাদের স্পষ্ট পছন্দ থাকে – তাদের প্রিয় এডিটর লিঙ্ক করার অনুমতি দেয়। যেস দুটি উদাহরণ আমাকে সবচেয়ে বেশি প্রভাবিত করেছিল সেগুলো হলো Bash কমান্ড-লাইন এডিটিং, যা ডিফল্টভাবে Emacs ব্যবহার করে, এবং Alpine টেক্সট-মোড ইমেইল ক্লায়েন্ট, যা Pico এডিটর ডিফল্টভাবে ব্যবহার করে। ফ্যাক্ট, Pico এডিটর স্পষ্টভাবে Pine ইমেইল ক্লায়েন্টে ব্যবহার করার জন্য লিখা হয়েছিল, যা Alpine-এর প্রিডিসেসর।
সকল প্রোগ্রাম যা এক্সটার্নাল এডিটর ব্যবহার করে সেগুলো কনফিগারেবল নয়। কিছু শুধু ডেভেলপার দ্বারা নির্দিষ্ট এডিটর ব্যবহার করে। যেস অ্যাপ্লিকেশনগুলো কনফিগারেবল, তাদের জন্য প্রিয় এডিটর নির্বাচন করার বিভিন্ন পদ্ধতি রয়েছে।
লিনাক্স কমান্ড-লাইন এডিটিং
আসল টেক্সট ফাইল এডিট করার পাশাপাশি, অন্য টুল যা আমি ব্যবহার করি যেটি সবচেয়ে বেশি এডিটিং দরকার সেটি হলো Bash শেল। ডিফল্ট Bash এডিটর হলো Emacs। যদিও আমি Emacs ব্যবহার করেছি, আমি নিঃসন্দেহে Vim পছন্দ করি। তাই অনেক বছর আগে আমি Bash কমান্ড-লাইন এডিটিং-এর ডিফল্ট এডিটিং স্টাইল Emacs থেকে Vim-এ চেঞ্জ করেছিলাম, যা আমার জন্য অনেক বেশি কমফরটেবল।
Bash কনফিগার করার কয়েকটি পদ্ধতি আছে। আপনি একটি লোকাল কনফিগারেশন ফাইল ব্যবহার করতে পারেন, যেমন /home/yourhomedirectory/.bashrc, যা শুধু আপনার ইউজার একাউন্টের জন্য ডিফল্ট চেঞ্জ করে একই সিস্টেমের অন্যান্য ইউজারদের জন্য নয়। আমি এই ধরনের চেঞ্জ গ্লোবালি করতে পছন্দ করি, যা বেসিক্যালি মানে আমার পারসোনাল একাউন্ট এবং রুট। এই দ্বিতীয় কেসে, আপনি আপনার নিজস্ব কনফিগারেশন ফাইল তৈরি করতে পারেন এবং সেটি /etc/profile.d ডিরেক্টরিতে রাখতে পারেন।
আমি myBashConfig.sh নামে একটি ফাইল /etc/profile.d-এ যোগ করেছি। /etc/profile.d ডিরেক্টরিতে সব ইনস্টল করা শেলের জন্য ফাইল রয়েছে। একটি টার্মিনাল সেশন লঞ্চ হওয়ার সময়, প্রতিটি শেল শুধু তার জন্য নির্দিষ্ট ফাইল পড়ে ফাইল নাম এক্সটেনশন অনুযায়ী। উদাহরণস্বরূপ, Bash শেল শুধু .sh এক্সটেনশন والی ফাইল পড়ে।
<SNIP> alias vim='vim -c "colorscheme desert" ' # Set vi for bash editing mode set -o vi # Set vi as the default editor for all apps that check this EDITOR=vi <SNIP>
এই গ্লোবাল Bash কনফিগারেশন ফাইল সেগমেন্টের set -o vi লাইনটি Vi কে ডিফল্ট এডিটর সেট করে। এই set কমান্ডের -o অপশন vi কে এডিটর ডিফাইন করে। আপনাকে যেকোনো রানিং Bash সেশন বন্ধ করে নতুন গুলো ওপেন করতে হবে এর জন্য ইফেক্ট নেওয়ার জন্য।
এই পয়েন্টে, আপনি আপনার সব পরিচিত Vim এডিটিং কমান্ড ব্যবহার করতে পারেন, কার্সর মুভমেন্ট সহ। শুধু Escape কী চাপুন Vim এডিটিং মোডে প্রবেশ করতে। আমি বিশেষভাবে b একাধিকবার চাপা যেন কার্সর একাধিক শব্দ পেছনে যাবে সেটি পছন্দ করি।
অন্য প্রোগ্রামের জন্য Vim কে ডিফল্ট সেট করুন
কিছু লিনাক্স কমান্ড-লাইন টুল এবং প্রোগ্রাম $EDITOR এনভায়রনমেন্ট ভেরিয়েবল চেক করে কোন এডিটর ব্যবহার করবে সেটি নির্ধারণ করতে। আপনি এই ভেরিয়েবলের করেন্ট ভ্যালু নিজে চেক করতে পারেন নিচের কমান্ড ব্যবহার করে। আমি এটি আমার নতুন ইনস্টল করা ভার্চুয়াল মেশিনে করেছি ডিফল্ট কী সেটি যেন ভেরিফাই করতে পারি।
# echo $EDITOR /usr/bin/nano #
ডিফল্টভাবে, Fedora প্রোগ্রামগুলো যেগুলো $EDITOR এনভায়রনমেন্ট ভেরিয়েবল চেক করে সেগুলো Nano এডিটর ব্যবহার করবে। উপরে gösterা স্নিপেটে EDITOR=vi লাইনটি myBashConfig.sh-এ যোগ করলে ডিফল্টটি Vi (Vim) এডিটরে চেঞ্জ হয়ে যাবে। সব কমান্ড-লাইন প্রোগ্রাম যেগুলো এক্সটার্নাল এডিটর ব্যবহার করে সেগুলো এই এনভায়রনমেন্ট ভেরিয়েবল চেক করে না।
Alpine-এ ইমেইল এডিট করুন
কয়েক সপ্তাহ আগে, আমি ডিসাইড করেছিলাম Pico আমার জন্য ইমেইল এডিটর হিসেবে ভালো কাজ করছে না। আমি সেটি কাজ করতে পারতাম এবং Thunderbird থেকে Alpine-এ সুইচ করার পর কিছু সময় সেটি করেছি। আমি পেলাম Pico আমার পথে বাধা দিচ্ছে যখন আমি Vim কী সিকোয়েন্স ব্যবহার করার চেষ্টা করি, আমার প্রোডাক্টিভিটি প্রভাবিত করছে।
আমি Alpine Help-এ পড়েছিলাম যে ডিফল্ট এডিটর চেঞ্জ করা সম্ভব। আমি সেটি Vim-এ চেঞ্জ করার সিদ্ধান্ত নিলাম। এটি আসলে খুব সহজ।
Alpine মেইন মেনুতে, S কী চাপুন সেটআপে প্রবেশ করতে এবং তারপর C কনফিগারেশনের জন্য। Composer Preferences সেকশনে, Enable Alternate Editor Command এবং Enable Alternate Editor Implicitly আইটেমগুলো X দিয়ে সিলেক্ট করুন। কিছু পেজ নিচে Advanced User Preferences সেকশনে, Editor লাইনটি খুঁজে বের করুন। এটা নিচের মত দেখাবে যদি এটি ইতিমধ্যে চেঞ্জ করা না থাকে।
Editor = <No Value Set>
এই Editor লাইনটি কার্সর বার দিয়ে হাইলাইট করুন, এবং এডিট করার জন্য Enter চাপুন। <No Value Set>-কে vim-এ চেঞ্জ করুন, Enter চাপুন, এবং তারপর E কী চাপুন এক্সিট করতে এবং Y চাপুন আপনার করা পরিবর্তনগুলো সংরক্ষণ করতে।
Vim ব্যবহার করে ইমেইল মেসেজ এডিট করতে, শুধু ইমেইল বডি এন্টার করুন, এবং Vim অটোমেটিক্যালি শুরু হয়ে যাবে, ঠিক Pico-এর মত। আমার সব প্রিয় এডিটিং ক্যাপাবিলিটি সেখানে আছে কারণ এটি আসলে Vim ব্যবহার করছে। এমনকি Esc :wq সিকোয়েন্স Vim থেকে বের হওয়ার জন্যও একই।
শেষ ভাবনা
আমি অন্যান্য এডিটরের চেয়ে Vim অনেক বেশি পছন্দ করি, এবং আমার সিস্টেমে এই পরিবর্তনগুলো এটিকে ডিফল্ট হিসেবে উপলব্ধ করে দিয়েছে যেস প্রোগ্রামগুলো ডিফল্টভাবে অন্য এডিটর ব্যবহার করে। কিছু প্রোগ্রাম $EDITOR এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে, তাই আপনাকে সেটি একবারই চেঞ্জ করতে হয়। অন্যান্য প্রোগ্রাম যেমন Alpine-এ ইউজার কনফিগারেশন অপশন থাকে যেগুলো আপনাকে প্রতিটি প্রোগ্রামের জন্য আলাদাভাবে সেট করতে হয়।
আপনার প্রিয় এক্সটার্নাল এডিটর নির্বাচন করার এই ক্ষমতা কিয়ে Unix ফিলোসফির টেনেট, "প্রতিটি প্রোগ্রাম একটা কাজ করুক এবং সেটি ভালো করে করুক"-এর সাথে পুরোপুরি মিলে যাওয়া। কেন অন্য এডিটর লিখবেন যখন কয়েকটি পারফেক্টলি ভালো এডিটর বাইরে আছে? এবং এটি লিনাক্স ফিলোসফির টেনেট, "আপনার প্রিয় এডিটর ব্যবহার করুন"-ও পূরণ করে।
অবশ্যই, আপনি আপনার ডিফল্ট টেক্সট-মোড এডিটর Nano, Pico, EMACS, বা যেকোনো অন্য যা আপনি পছন্দ করেন সেটিতে চেঞ্জ করতে পারেন।