Monthly Archives: May 2012

Vim Sample Showcase

Vim အကြောင်းရေးလက်စနဲ့ ဖြစ်နေတော့ သုံးလို့ရတာကို နမူနာပြထားတယ် Code Auto Complete အတွက်နဲ့ Tab Key အစားထိုးဖို့အတွက် xptemplate နဲ့ Supertab ကိုသုံးထားတယ် စမ်းကြည့်ဖို့အတွက် Vim တော့ရှိဖို့လိုပါတယ် Gvim, MacVim, Vim, Gnome Vim စသည်ဖြင့် တစ်ခုခုတော့ရှိဖို့လိုလိမ့်မယ်။ Vim ဟာ Unix Environment ကလာတာဖြစ်လို့ User Environment မှာအားလုံး Customize လုပ်လို့ရပါတယ်။ xptemplate နဲ့ Supertab ကို အောက်မှာ ပြထားတဲ့ URL တွေကနေ Download လုပ်ပြီးတော့ Install လုပ်ရမယ်။ Windows မှာဆိုရင် ကိုယ့်ရဲ့ User Directory အောက်မှာ _vimfile ဆိုပြီး Folder တစ်ခု Create လုပ်ပြီး Unix, Linux, Mac ဆိုရင်တော့ User Directory အောက်မှာ .vim ဆိုပြီး Directory တစ်ခု Create လုပ်ပြီး ကူးထည့်ရမယ်။

https://github.com/drmingdrmer/xptemplate

https://github.com/ervandew/supertab

ပြီးရင်တော့ အဆင်ပြေပြေသုံးလို့ရဖို့ Configure နည်းနည်းလုပ်ရမယ် Windows ဆိုရင် User Directory အောက်မှာ _vimrc ဒါမှမဟုတ် Unix, Linux, Mac ဆိုရင် vimrc ဆိုပြီးနည်းနည်း ပြင်ဖို့လိုမယ် ရှိပြီးသားဆိုရင် အဲဒီ့ထဲကိုထပ်ထည့် မရှိရင်တော့ Create လုပ်ပြီး အောက်မှာပြထားတဲ့ ကုဒ်တွေကိုထည့်ရမယ်။ ဘာရယ်တော့ ထူးထူးဆန်းဆန်း မဟုတ်ပါဘူး Tab ကိုနှိပ်ရင် xptemplate ရဲ့ Shortcut ကိုအလုပ်ဖို့နဲ့ Filetype တွေအလိုက် Auto Complete လုပ်ဖို့အတွက် filetype plugin ကို On ထားတာတစ်ခုပါပဲ။

"" No Compatible Mode
set nocompatible

"" Filetype Plugin
filetype plugin  on

"" xptemplate
let g:SuperTabMappingForward = 'supertabKey'
let g:xptemplate_fallback = 'supertabKey'
let g:xptemplate_key = ''
let g:xptemplate_vars = "BRloop=\n&BRif=\n&BRstc=\n&BRfun=&SPcmd="

အဲဒါတွေပြီးရင်တော့ သုံးလို့ရပါပြီ Vim နဲ့နမူနာစမ်းရအောင် HTML file တစ်ခု Create လုပ်လိုက်တယ် ပြီးတော့ Insert Mode ကိုပြောင်း h လို့တစ်လုံးပဲရိုက် Tab တစ်ချက်နှိပ်လို်က်ရင် သူကစာရင်းပြတယ် h1 to h6, head, html ဆိုပြီး Hints ပေးသေးတယ် အဲဒါကို ht လို့ဆက်ရိုက် Tab ထပ်နှိပ်လိုက် တစ်ခါတည်း HTML Page တစ်ခု Skelaton ထွက်လာရော အဲဒါကိုပဲ ပြင်လေ့ရှိတဲ့နေရာတွေကို ခုံလို့ရတယ် ပထမဆုံး charset မှာ Cursor ချထားပေးတယ် ပြင်ချင်ရင်ပြင် ထပ်ပြီး Tab နှိပ်လိုက်ရင် title ထဲကို ကျော်သွားပေးတယ် ပြင်ပြီးလို့ Tab ထပ်နှိပ်ရင် body ထဲကိုကျော်ချပေးတယ်။

စိတ်ဝင်စားရင်တော့ သုံးကြည့်လို့ရပါတယ် အသုံးတည့်နိုင်တဲ့ Vim Script တွေဆိုရင် TagList, NERD tree လိုဟာတွေလည်း အသုံးတည့်တယ်။ အရောင် လှလှပပသုံးချင်ရင် Color Sampler Pack မှာ Scheme အများကြီးရှိပါတယ်။ စိတ်ဝင်စားရင်တော့ စမ်းကြည့်လို့ရတယ် စသုံးကာစလူအတွက် လွယ်တယ်လို့တော့ မပြောပါဘူး Key တွေအများကြီး မှတ်မိဖို့လိုတယ် အလွတ်မရခင်တော့ ကွန်ပျူတာကို ဆောင့်ကန်ချင်စိတ် ပေါက်လာတတ်တာပေါ့ နမူနာစမ်းပြထားတဲ့ ပုံတွေကို အောက်မှာပြထားပေးပါတယ်။

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 ပဲသုံးပါတယ်။