Calm Hill My Random Thoughts

Vim is still active

Text Editor ဘာသုံးလဲမေးလို့ Vim သုံးတယ်လို့ ဖြေမိရာက လူလည်း အဘိုးကြီး ဖြစ်သွားရှာတယ် ကြည့်ရတာ မေးတဲ့လူက Vim ဆိုတာဘယ်သူမှ မသုံးတော့ဘူး ထင်နေပုံရပါတယ် တကယ်တော့ Vim သုံးတဲ့လူတွေ မနည်းပါဘူး အများစုက Programmer တွေသုံးကြပါတယ် အနှစ် ၃၀ လောက် သက်တမ်းရှိနေတဲ့ Program တစ်ခုအခုထိ သုံးနေကြတာ အကြောင်းအရင်း တစ်ခုတော့ရှိနေလို့ပါ။ Vim ဟာအများအားဖြင့် Terminal တွေမှာ သုံးလေ့ရှိတဲ့အတွက် Terminal မှာစာရိုက်လို့ရအောင် လုပ်ထားပေးတဲ့ Text Editor လေးတစ်ခုလို့ပဲ မသုံးဖူးတဲ့လူတွေ ထင်ကြပုံရပါတယ်။

Platform အစုံသုံးရလေ့ရှိတော့ Text Editor တွေ အသားမကျတာနဲ့ ဟိုဘက်ဒီဘက် Short Cut ရောနေတာနဲ့ ခဏခဏစိတ်ညစ်ရပါတယ် အဲဒါနဲ့ Vim ကိုပဲသုံးဖြစ်တော့တယ် Vim ကတော့ Windows, Linux, Mac, Terminal ဘယ်နေရာဖြစ်ဖြစ် အလုပ်လုပ်တော့ တစ်နေရာမှာ Configure လုပ်ထားရင် နောက်တစ်ခုမှာ Configuration ကိုကူးထည့်လိုက်ရင် အဆင်ပြေတယ် အဲဒီတော့ ဘယ်စက်ရောက်ရောက် ပုံမှန်သုံးနေကျ Plug In တွေ Script တွေနဲ့ သုံးလို့ရတော့ အဆင်ပြေပါတယ်။ Configuration တွေကို ဘယ်စက်ပဲဖြစ်ဖြစ် ကူးထည့်လိုက်ရင် မိနစ်ပိုင်းအတွင်း Setup လုပ်ပြီးသွားပါပြီ။ အဲဒါဆိုရင် Vim သုံးတာ OS အားလုံးရလို့လားမေးရင်တော့ အကြောင်းအရင်း တစ်ခုထဲမှာတော့ ပါမှာပါပဲ ဒါပေမယ့် အဲဒါတစ်ခုထဲတော့ မဟုတ်ဘူးပေါ့ Features တွေကို သဘောကျလို့ကိုသုံးတာပါ။

Vim ရဲ့ အဓိကရည်ရွယ်ချက်က ကီးဘုတ်ရဲ့ QWERTY Line ပေါ်ကလက်ကို ဖယ်စရာလိုပဲ အလုပ်လုပ်လို့ရအောင် လုပ်ထားပါတယ် Editor ထဲမှာ Cursor Movement အတွက်ကို ညာလက်ကို Arrow Keys တွေပေါ်ကို ရွှေ့စရာမလိုအောင် လုပ်ထားပေးပြီး အမြန်ဆုံးစာရိုက်နိုင်အောင် လုပ်ထားတာပါ နောက်တစ်ခု Key Press အနည်းဆုံးနဲ့ အလုပ်အများဆုံးပြီးရမယ်ဆိုတဲ့ ရည်ရွယ်ချက်ရှိပါတယ် အဲဒီ့အတွက်ကြောင့် Code ရေးမယ့်လူတွေအတွက် အကျိုးရှိရှိသုံးနိုင်မယ်ဆိုရင် အလုပ်အင်မတန်ပြီးပါတယ်။ Vim သုံးလို့ အလုပ်မြန်တယ်ဆိုရင် ရယ်ကောင်းရယ်ကြလိမ့်မယ် အဲဒါကအခြေခံမသုံး တတ်သေးတဲ့ အခြေအနေမှာ ရှိနေကြလို့ပါ Vim မှာ အခြေခံသုံးတတ်သွားရင် အသုံးတည့်တဲ့ Script တွေအများကြီးရှိပါတယ် အသေအချာ Configure လုပ်ထားမယ်ဆိုရင် Key Press ၂ခု ၃ခု အတွင်းမှာပဲ Program တစ်ခုရဲ့ Skeleton Code ကိုရေးပြီးသား ဖြစ်သွားပါလိမ့်မယ်။

Syntax Highlight ဆိုတာက အခုအချိန်မှာ Text Editor အားလုံးနီးနီး အလွယ်တကူရနိုင်တော့ ခက်ခဲတဲ့ပြဿနာ မဟုတ်ပေမယ့် IDE တစ်ခုသုံးရေးနေကျ Programmer တွေက Text Editor တစ်ခု သုံးရေးပါဆိုရင် ပေါ့ပေါ့ပါးပါး သုံးချင်ပါတယ် ဒါပေမယ့် အရေးကြီးတဲ့ Auto Complete မပါတဲ့အတွက် Productivity ကျသွားလေ့ရှိတယ် သာမန်အားဖြင့် Text Editor တွေမှာ Auto Complete ဟာ Plug In တွေနဲ့လုပ်ယူရင်ရပေမယ့် IDE တွေကို အဆင်ပြေတယ်တော့ မဟုတ်ပါဘူး။ Vim မှာတော့ အလွယ်တကူ လုပ်လို့ရပါတယ် ရတယ်ဆိုတဲ့နေရာမှာ Vim ဟာ Terminal မှာသုံးရင်ကိုပဲ Auto Complete တွေဟာ သုံးလို့ရတဲ့အတွက် Terminal ကနေ Server ကိုဝင်သုံးနေရင်တောင် သုံးလို့ရတာ အင်မတန်ကောင်းပါတယ်။ အဲဒီတော့ တစ်ခါတစ်လေလည်း စက်ထဲကိုဆွဲမချတော့ဘူး သိပ်မများရင် Terminal မှာပဲရေးပြီး Server ပေါ်မှာပဲတစ်ခါတည်း ရေးလိုက်တော့တယ်။

ပထမဆုံးတော့ Vim ကိုအခြေခံသုံးတတ်ရမယ် သုံးတတ်သွားရင်တော့ Plug In တွေနမူနာပြောပါဆိုရင် TagList ကိုအရင်ဆုံးပြောရမယ် Source Code ထဲမှာရေးထားတဲ့ Function, Class, Variable စတာတွေနဲ့ Navigate လုပ်လို့ရပါလိမ့်မယ် သာမန် Text Editor တွေမှာ ဘယ်လိုမှမရနိုင်ပါဘူး IDE တွေမှာသာ အဲလိုရနိုင်ပါတယ်။ Auto Complete အတွက်ဆိုရင် Vim မှာ Build In ပါပါတယ် ဒါပေမယ့် Key တွေမှတ်ရသလို သုံးရတာနည်းနည်းကြာတယ် ဒါလည်း Super Tab ထည့်ထားရင် အစစာလုံးလေးရိုက် Tab လေးတစ်ချက်နှိပ်တာနဲ့ Auto Complete လုပ်ပေးနိုင်ပါတယ်။ Mac မှာ TextMate ဟာ ကုဒ်ရေးရတာ အင်မတန်မြန်ပါတယ် Auto Complete တင်မဟုတ်ဘူး Snippets တွေပါ အစားထိုးလို့ရတာကိုး for ဆိုရင် for loop structure တစ်ခုလုံး သူထည့်ပေးသွားပြီ ခက်တာက စျေးကြီးပါတယ် ၅၀ လောက်ပေးရတယ်။ တကယ်တော့ Vim မှာ Template လို့ခေါ်တာ အရင်ကတည်းကပါ အလွယ်တကူလုပ်လို့ရတယ် ကိုယ်တိုင်မလုပ်တတ်လည်း Script တွေရှိတယ် အရင်ကတော့ snippetsMate သုံးနေကျ အခုတော့ xptemplate ပြောင်းသုံးတာ နည်းနည်းကြာပြီ။

သာမန် Programmer အတွက်တော့ Vim + Super Tab + snippetsMate or xptemplate ဆိုရင် အတော်လုံလောက်နေပြီ လုပ်နိုင်မယ်ဆို အများကြီးပါပဲ Vim ထဲကနေပဲ Git လို Revision Control တွေကို တစ်ခါတည်း လှမ်းသုံးလို့ရတယ် Server ပေါ်ကဖိုင်တွေကို scp နဲ့တစ်ခါတည်း လှမ်းပြင်လို့ရတယ် ကြံကြံဖန်ဖန် Code ရေးနေရင်းနဲ့ Chat ရတာ ဝါသနာပါလို့ vimchat လိုသုံးရင် GTalk, MSN,… တွေလို IM တွေထဲကို Vim ကနေဝင်ထားချင်လည်း လုပ်လို့ရပါတယ် ကုဒ်လည်းရေး တစ်ဘက်ကလည်း စကားပြောမပျက် ကိုယ်တိုင် Script မရေးတတ်လည်း ရေးပြီးသားတွေ အများကြီးရှိပါတယ် ဒီလိုအစုံသုံးလို့ရတဲ့ Text Editor ဘယ်မှရှာမရပါဘူး အဲဒီတော့ ဘယ်သူပဲ အဘိုးကြီးပြောပြော Vim ပဲသုံးပါတယ်။