ভিম : কাস্টমাইজেশন

আগের দুই পর্বে (১ম, ২য়) ভিমের সঙ্গে প্রাথমিক কিছু পরিচয় হয়েছে। এই পর্বে দরকারি কিছু বিষয়—যেগুলো সাধারণত একবারই কনফিগার করে নেওয়ার প্রয়োজন হবে—সেগুলো নিয়ে কিছুটা লিখেছি।

এই পর্বের সবচেয়ে দরকারি জিনিস হচ্ছে .vimrc ফাইল। ভিম ওপেন হওয়ার সময় এই ফাইলটি পড়ে বিভিন্ন কনফিগারেশন ঠিক করে নেয়। স্থায়ীভাবে কোনোকিছু সেট করতে আমাদের এই ফাইলে কনফিগারেশনগুলো লিখতে হবে। লিনাক্সে /etc/vim/vimrc বা /etc/vimrc ফাইলেও কনফিগারেশন থাকতে পারে। তবে সেগুলোতে হাত না দেওয়াই ভালো, যদি না আপনি জানেন যে আপনি ঠিক কী করছেন।

টার্মিনাল ওপেন করে নিচের কমান্ডটি এক্সিকিউট করুন –

$ vim ~/.vimrc

এতে .vimrc ফাইলটি খুলবে।

ধরে নিচ্ছি এই লেখা যারা পড়ছেন, তারা সবাই প্রোগ্রামার। তাই প্রোগ্রামিংসংক্রান্ত কিছু কাজ দিয়েই শুরু করা যাক। প্রথমেই আমাদের দরকার লাইন নম্বর। .vimrc ফাইলে লিখে ফেলুন –

set number

এবার ফাইলটি সেভ করে ভিম বন্ধ করুন। আবার ওপেন করুন। এখন লাইন নম্বর দেখা যাচ্ছে। কোডের সিনট্যাক্স হাইলাইটিংয়ের জন্য লিখুন –

syntax on

অটো ইনডেন্টেশনের জন্য লিখুন –

filetype plugin indent on

ভিমে ট্যাব ক্যারেক্টারের দৈর্ঘ ডিফল্টভাবে ৮ স্পেস, যা অনেকেরই পছন্দ না। আবার ট্যাব ক্যারেক্টারের বদলে স্পেস ব্যবহার করা একটি ভালো অভ্যাস। সুতরাং নিচের লাইনগুলোও লিখে ফেলুন –

set tabstop=4
set shiftwidth=4
set expandtab

এবার ফাইলটি সেভ করে নিন। প্রোগ্রামিংয়ের জন্য ভিম তৈরি হয়ে গেল।

কম্পিটিটিভ প্রোগ্রামিং যারা করে, তারা প্রায়ই দ্রুত কোড লেখার জন্য টেমপ্লেট তৈরি করে রাখে। ভিমেও এ রকম টেমপ্লেট ব্যবহার করা যায়। ধরে নিলাম আপনার সি প্লাস প্লাসের একটি টেমপ্লেট লাগবে। নিচের মতো একটি ফাইল তৈরি করুন –

#include <bits/stdc++.h>

using namespace std;

// Other macros and functions

int main()
{

    return 0;
}

ফাইলটি skel.cpp নাম দিয়ে সেভ করে ~/.vim/templates/ ডিরেক্টরিতে নিয়ে রাখুন –

$ mkdir -p ~/.vim/templates/
$ mv skel.cpp ~/.vim/templates/

এবার .vimrc ফাইলটি ওপেন করে নিচের লাইনটি যোগ করুন –

autocmd BufNewFile *.cpp 0r ~/.vim/templates/skel.cpp

ফাইলটি সেভ করে নিন। এখন থেকে .cpp এক্সটেনশনের যেকোনো নতুন ফাইল তৈরি করলে এতে টেমপ্লেট ফাইলের কোডটুকু যুক্ত হয়ে যাবে। আবার আপনি যদি চান যে ফাইল তৈরির পর কার্সর কোনো নির্দিষ্ট লাইনে থাকুক (যেমন : মেইন ফাংশনের শুরুতে), তাহলে নিচের লাইনটি .vimrc-তে যোগ করতে পারেন।

autocmd BufWinEnter *.cpp call cursor(8, 1)

এতে কার্সরটি ৮নং লাইনের শুরুতে থাকবে। আপনি আপনার টেমপ্লেট অনুযায়ী এখানে লাইন নম্বর ঠিক করে দিন। এতে নতুন ফাইল তৈরির পর নেভিগেট করে মেইন ফাংশনে যেতে হবে না, কার্সর আগে থেকেই সেখানে থাকবে। আপনি কেবল i চেপে কোড করা শুরু করবেন।

[ছোট্ট দুটি তথ্য এখানে দেওয়া দরকার বলে মনে করি। ভিমে কমান্ড মোডে o (ছোট হাতের O) চাপলে কার্সর যে লাইনে অবস্থিত, তার নিচে একটি নতুন লাইন ইনসার্ট হয়। আবার ইনসার্ট মোডে যাওয়ার জন্য i না চেপে a চাপা সুবিধাজনক।]

ভিমের ডিফল্ট কালারস্কিম পরিবর্তন করতে চাইলে কমান্ড মোডে গিয়ে লিখুন :colo, তারপর একটি স্পেস দিন, তারপর Ctrl + d চাপুন। কালারস্কিমের একটি তালিকা দেখা যাবে, নিচের ছবির মতো –

এখন পছন্দমতো একটি কালারস্কিমের নাম লিখে এন্টার চাপুন। যেমন : blue কালারস্কিম সেট করতে চাইলে লিখতে হবে :colo blue। এখানে colorscheme-কে সংক্ষেপে colo লেখা হয়েছে। পুরোটা লিখলেও হবে। কালারস্কিম স্থায়ীভাবে সেট করতে চাইলে .vimrc ফাইলের শেষে নিচের লাইনটি যোগ করতে হবে –

colorscheme blue

এখানে যদিও মাত্র কয়েকটি কালারস্কিম রয়েছে, ইন্টারনেট থেকে আরো অনেক কালারস্কিম ডাউনলোড করে নেওয়া যায়। কালারস্কিম ফাইল ~/.vim/colors ফোল্ডারে রেখে .vimrc ফাইলে ওপরের মতো করে colorscheme <name> লিখে দিলেই হলো। কালারস্কিম প্লাগইন হিসেবেও ডাউনলোড করা যায়।

ভিমের কার্যক্ষমতা বৃদ্ধি করতে শত শত প্লাগইন গিটহাবে রয়েছে। কিন্তু এগুলো নিজে নিজে ডাউনলোড করে ম্যানেজ করা কঠিন। সেজন্য একটি প্লাগইন ম্যানেজার ব্যবহার করা ভালো। ভিমের অনেকগুলো প্লাগইন ম্যানেজার রয়েছে। আমি এখানে Vundle (Vim bundle) ইনস্টল করা এবং এটি দিয়ে প্লাগইন ইনস্টল করার পদ্ধতি দেখাচ্ছি।

Vundle ইনস্টল করতে চলে যেতে পারেন এর গিটহাব পেজে। বুঝতে অসুবিধা হলে নিচের ধাপগুলো অনুসরণ করুন :

টার্মিনাল খুলে নিচের কমান্ডটি এক লাইনে লিখে (বা কপি করে) রান করুন –

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

এবার .vimrc ফাইল খুলে ফাইলের একেবারে শুরুতে নিচের লাইনগুলো যোগ করুন –

set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'

call vundle#end()

লাইনগুলো অবশ্যই ফাইলের শুরুতে যোগ করতে হবে। ফাইলটি সেভ করে নতুন করে ভিমে প্রবেশ করুন। কমান্ড মোডে লিখুন :PluginInstall। দেখবেন নিচে Done লেখা এসেছে। তার মানে প্লাগইন ম্যানেজার সফলভাবে ইনস্টল হয়েছে। :qa লিখে ভিম থেকে বের হয়ে আসুন।

আপনি এখন চলে যেতে পারেন https://vimawesome.com/ সাইটে। এখানে প্রচুর প্লাগইন রয়েছে। মজার ব্যাপার হচ্ছে, সাইটটিতে ভিমের শর্টকাট ব্যবহার করে নেভিগেট করা যায়। যাহোক, আমি এখন gruvbox নামের একটি প্লাগইন ইনস্টল করে দেখাব। এটি মূলত একটি কালারস্কিম। একই পদ্ধতি অনুসরণ করে আপনি পরে যেকোনো প্লাগইন ইনস্টল করতে পারবেন।

.vimrc ফাইল ওপেন করে Plugin ‘VundleVim/Vundle.vim’ লাইনের পরে নিচের লাইনটি যোগ করুন (স্ক্রিনশট দেখুন) –

Plugin 'morhetz/gruvbox'

লাইনটি অবশ্যই call vundle#end() লাইনের আগে হবে। এরপর ফাইলের একদম শেষে নিচের লাইনটি যোগ করুন –

colorscheme gruvbox

এখন আবার ভিমে প্রবেশ করে :PluginInstall কমান্ড চালান। কিছুক্ষণের মধ্যে প্লাগইনটি ইনস্টল হয়ে Done লেখা আসবে। ভিম থেকে বের হয়ে যান। .vimrc ফাইলটি ভিম দিয়ে ওপেন করলে নতুন কালারস্কিমটি দেখতে পাবেন।

Vundle বিষয়ে বিস্তারিত জানতে এবং এর ব্যবহার শিখতে অবশ্যই এর গিটহাব পেজ থেকে রিডমি ফাইলটি পড়ে নেবেন। যেকোনো প্লাগইন ইনস্টলের জন্য প্লাগইনের গিটহাব পেজে চলে যেতে হবে, এবং ঠিকানা থেকে github.com/ অংশটি বাদ দিয়ে বাকি অংশ ওপরের পদ্ধতিতে .vimrc ফাইলে বসিয়ে দিতে হবে। বাকি কাজ Vundle করবে। যেমন : gruvbox-এর গিটহাব ঠিকানা হচ্ছে github.com/morhetz/gruvbox, আমরা তাই morhetz/gruvbox লিখেছি।

মোটামুটি এই ছিল আলোচনার বিষয়বস্তু। এখানে ভিমের অতি অল্প বিষয় নিয়েই আলোচনা করা হয়েছে। ভিমের যেকোনো সমস্যায় সাহায্য পাওয়া যাবে :help কমান্ড থেকে। যেমন : :help window লিখলে window সম্পর্কে সাহায্য দেখা যাবে, :help quit লিখে quit সম্পর্কে সাহায্য পাওয়া যাবে। টার্মিনালে vimtutor কমান্ড লিখলে ভিম ব্যবহারের প্রয়োজনীয় তথ্যসমৃদ্ধ একটি ম্যানুয়েল পাওয়া যায়। পুরোটা পড়তে মোটামুটি ঘণ্টাখানেক লাগে। পড়ার সময় অবশ্যই সাথে সাথে অনুশীলন করতে হবে। এছাড়া ইন্টারনেট তো আছেই সাহায্যের জন্য।

প্রোগ্রামিং করার জন্য পরিপূর্ণভাবে ভিমের ওপর নির্ভরশীল হতে হলে আরো কিছু জিনিসের প্রয়োজন হবে, যেমন: কোড কমপ্লিশন ইত্যাদি। আর এ সবকিছুর জন্য ভিমের প্লাগইন রয়েছে। আশা করছি আগ্রহী পাঠক সেগুলো নিজে নিজেই ইনস্টল করে নিতে পারবেন। ফাইল ব্রাউজিংও একটু আয়ত্ব করে নিতে পারেন। আর কেবল এটুকুই আপনাকে দিতে পারে ভিমের অসাধারণ এক জগতের সন্ধান।

Solarized কালারস্কিম ও YouCompleteMe প্লাগইন ও JetBrains Mono ফন্টের সমন্বয়ে আমার বর্তমান ভিম।

—মোশারফ হোসেন