Editors (Vim)

အင်္ဂလိပ် စာသားများ ရေးသားခြင်းနှင့် ကုဒ် (Code) ရေးသားခြင်းတို့သည် အလွန် ကွဲပြားသော လုပ်ဆောင်ချက်များ ဖြစ်ကြသည်။ ပရိုဂရမ်းမင်း ရေးသားသည့်အခါ စာသားများ အများအပြား ဆက်တိုက် ရေးသားခြင်းထက် ဖိုင်များအကြား ကူးပြောင်းခြင်း၊ စာဖတ်ခြင်း၊ လမ်းကြောင်းရှာခြင်းနှင့် ကုဒ်များကို ပြင်ဆင်ခြင်းတို့တွင် အချိန်ပိုမို ကုန်လွန်လေ့ရှိသည်။ ထို့ကြောင့် အင်္ဂလိပ်စာ ရေးသားရန် ပရိုဂရမ်များနှင့် ကုဒ် ရေးသားရန် ပရိုဂရမ်များ ကွဲပြားနေခြင်းမှာ အလွန် သဘာဝကျပါသည် (ဥပမာ Microsoft Word နှင့် Visual Studio Code)။

Programmer များအနေဖြင့် ကျွန်ုပ်တို့သည် အချိန်အများစုကို ကုဒ် ပြင်ဆင်ရေးသားရာတွင် ကုန်လွန်ကြရသဖြင့်၊ မိမိ လိုအပ်ချက်နှင့် ကိုက်ညီသော Editor တစ်ခုကို ကျွမ်းကျင်အောင် လေ့လာခြင်းသည် အလွန် တန်ဖိုးရှိပါသည်။ Editor အသစ်တစ်ခုကို လေ့လာနည်းမှာ အောက်ပါအတိုင်း ဖြစ်သည်-

Editor အသစ်တစ်ခုကို အသုံးပြုရာတွင် ပထမ ၁ နာရီ သို့မဟုတ် ၂ နာရီအတွင်း ဖိုင် ဖွင့်ခြင်း၊ ပြင်ဆင်ခြင်း၊ သိမ်းဆည်းခြင်း/ထွက်ခြင်း စသည့် အခြေခံများကို တတ်မြောက်မည် ဖြစ်သည်။ နာရီ ၂၀ ခန့် အသုံးပြုပြီးပါက ယခင် Editor ကဲ့သို့ပင် မြန်ဆန်လာမည် ဖြစ်ပြီး၊ ထိုနောက်ပိုင်းတွင် ယင်း၏ အကျိုးကျေးဇူးများကို စတင် ခံစားရမည် ဖြစ်သည်—Editor အသစ်ကို အသုံးပြုခြင်းဖြင့် အချိန်များစွာ အသက်သာစေမည် ဖြစ်သည်။

မည်သည့် Editor ကို လေ့လာမလဲ? (Which editor to learn?)

ယနေ့ခေတ် လူကြိုက်များသော Editor များအနက် Visual Studio Code သည် လူကြိုက်အများဆုံး Editor ဖြစ်ပြီး၊ Vim သည် Command-line အခြေပြု လူကြိုက်အများဆုံး Editor ဖြစ်သည်။

Vim

ဤသင်တန်း၏ သင်ကြားသူ အားလုံးသည် Vim ကို အသုံးပြုကြသည်။ Vim သည် Vi editor (1976) မှ စတင်ခဲ့ပြီး ယနေ့ထက်တိုင် တိုးတက်လျက် ရှိသည်။ Vim တွင် အလွန် ကောင်းမွန်သော အတွေးအခေါ်များ ပါဝင်သဖြင့် Tool အများအပြားက Vim Mode ကို ပံ့ပိုးပေးထားကြသည်။ Vim ၏ လုပ်ဆောင်ချက် အားလုံးကို မိနစ် ၅၀ အတွင်း သင်ကြားပေးရန် မဖြစ်နိုင်သော်လည်း၊ Vim ၏ အတွေးအခေါ်နှင့် အခြေခံများကို ရှင်းလင်း သင်ကြားပေးသွားမည် ဖြစ်ပါသည်။

Vim ၏ အတွေးအခေါ် (Philosophy of Vim)

ပရိုဂရမ်းမင်း ရေးသားရာတွင် အချိန်အများစုကို စာသားအသစ် ရေးသားခြင်းထက် ဖတ်ရှုခြင်းနှင့် ပြင်ဆင်ခြင်းတို့တွင် ကုန်လွန်ကြသည်။ ထို့ကြောင့် Vim သည် Modal editor ဖြစ်သည်—စာသား ထည့်သွင်းခြင်းနှင့် စာသား ပြင်ဆင်ခြင်းတို့အတွက် ကွဲပြားသော Mode များကို အသုံးပြုထားသည်။ Vim ၏ Interface ကိုယ်တိုင်သည် ပရိုဂရမ်းမင်း ဘာသာစကားတစ်ခုကဲ့သို့ အလုပ်လုပ်သည်—ခလုတ်များ နှိပ်ခြင်း (Keystrokes) သည် Command များ ဖြစ်ကြပြီး ယင်း Command များကို ပေါင်းစပ် အသုံးပြုနိုင်ပါသည်။ Vim သည် Mouse နှင့် Arrow Key များ အသုံးပြုခြင်းကို ရှောင်ရှားထားသဖြင့် မိမိ တွေးခေါ်သည့် အရှိန်အတိုင်း ရေးသား ပြင်ဆင်နိုင်စေမည် ဖြစ်သည်။

Modal editing (Mode မျိုးစုံဖြင့် ပြင်ဆင်ခြင်း)

Vim တွင် လုပ်ဆောင်ချက် Mode မျိုးစုံ ပါရှိပါသည်-

မူလအစတွင် Vim သည် Normal mode ၌ ရှိနေမည် ဖြစ်သည်။ မည်သည့် Mode မှမဆို Normal mode သို့ ပြန်လည် ရောက်ရှိရန် <ESC> (Escape key) ကို နှိပ်ရမည်။ Normal mode မှနေ၍ Insert mode သို့ ဝင်ရောက်ရန် i၊ Replace mode သို့ ဝင်ရောက်ရန် R၊ Visual mode သို့ ဝင်ရောက်ရန် v၊ Visual Line mode သို့ ဝင်ရောက်ရန် V၊ Visual Block mode သို့ ဝင်ရောက်ရန် <C-v> (Ctrl-V)၊ နှင့် Command-line mode သို့ ဝင်ရောက်ရန် : တို့ကို နှိပ်ရမည် ဖြစ်သည်။

အခြေခံများ (Basics)

စာသား ထည့်သွင်းခြင်း (Inserting text)

Normal mode မှနေ၍ i ကို နှိပ်ပါက Insert mode သို့ ရောက်ရှိမည် ဖြစ်ပြီး အခြား Text Editor များကဲ့သို့ စာသားများ ရိုက်ထည့်နိုင်မည် ဖြစ်သည်။ <ESC> နှိပ်ပါက Normal mode သို့ ပြန်လည် ရောက်ရှိမည် ဖြစ်သည်။

Buffers, tabs, နှင့် windows

Vim သည် ဖွင့်လှစ်ထားသော ဖိုင်များကို “Buffers” ဟု ခေါ်ဆိုသည်။ Vim Session တစ်ခုတွင် Tab များစွာ ပါဝင်နိုင်ပြီး Tab တစ်ခုစီတွင် Window (ခွဲထားသော Pane) များစွာ ပါဝင်နိုင်သည်။ Window တစ်ခုစီသည် Buffer တစ်ခုကို ပြသပေးသည်။ Buffer တစ်ခုတည်းကို Window အများအပြားတွင် ပြိုင်တူ ဖွင့်လှစ် ကြည့်ရှုနိုင်ပါသည်။

Command-line

Normal mode တွင် : ရိုက်ထည့်ပါက Screen အောက်ခြေရှိ Command line သို့ ရောက်ရှိမည် ဖြစ်သည်-

Vim Interface သည် ပရိုဂရမ်းမင်း ဘာသာစကားတစ်ခု ဖြစ်သည် (Vim’s interface is a programming language)

လမ်းကြောင်းရှာခြင်း (Movement)

Normal mode တွင် သွားလာလှုပ်ရှားရန် Command များကို အသုံးပြုသည်-

စာသား ပြင်ဆင်မှုများ (Edits)

Vim ၏ ပြင်ဆင်မှု Command များမှာ-

အရေအတွက် ပေါင်းစပ်ခြင်း (Counts)

Modifiers (အထူး ပြုပြင်မှုများ)

Demo (လက်တွေ့ ပြသမှု)

အောက်ပါ ဖျက်ဆီးထားသော Fizz Buzz ကုဒ်ကို Vim အသုံးပြု၍ ပြင်ဆင်ပြသထားသည်-

def fizz_buzz(limit):
    for i in range(limit):
        if i % 3 == 0:
            print('fizz')
        if i % 5 == 0:
            print('fizz')
        if i % 3 and i % 5:
            print(i)

def main():
    fizz_buzz(10)

Vim ကို စိတ်ကြိုက် ပြင်ဆင်ခြင်း (Customizing Vim)

Vim ကို ~/.vimrc ဖိုင် (Vimscript command များ ပါဝင်သော ဖိုင်) ဖြင့် စိတ်ကြိုက် ပြင်ဆင်နိုင်ပါသည်။ ကျွန်ုပ်တို့ ပြင်ဆင်ထားသော မူလ Config ကို ဤနေရာတွင် (/2020/files/vimrc) ဒေါင်းလုဒ်ဆွဲ၍ ~/.vimrc အဖြစ် သိမ်းဆည်း အသုံးပြုနိုင်ပါသည်။

Vim ကို တိုးချဲ့ခြင်း (Extending Vim)

Vim 8.0 မှ စတင်၍ Plugin များကို ~/.vim/pack/vendor/start/ Directory အတွင်း သို့ ထည့်သွင်း၍ တိုက်ရိုက် အသုံးပြုနိုင်ပါသည်။

ထင်ရှားသော Plugin အချို့မှာ-

အခြား ပရိုဂရမ်များတွင် Vim Mode အသုံးပြုခြင်း

အဆင့်မြင့် Vim (Advanced Vim)

အရင်းအမြစ်များ (Resources)

လေ့ကျင့်ခန်းများ (Exercises)

၁။ vimtutor ကို ပြီးစီးအောင် လေ့လာပါ။ ၂။ ကျွန်ုပ်တို့၏ အခြေခံ vimrc ကို ဒေါင်းလုဒ်လုပ်၍ ~/.vimrc အဖြစ် သိမ်းဆည်း အသုံးပြုပါ။ ၃။ ctrlp.vim plugin ကို ထည့်သွင်း စမ်းသပ်ပါ။ ၄။ သင်ခန်းစာပါ Demo ကို မိမိ စက်ပေါ်တွင် ကိုယ်တိုင် ပြန်လည် ပြုလုပ်ကြည့်ပါ။ ၅။ ရှေ့လာမည့် ၁ လအတွင်း စာသား ပြင်ဆင်မှု အားလုံးအတွက် Vim ကို သီးသန့် အသုံးပြုပါ။


Edit this page.

Licensed under CC BY-NC-SA.