Introduction
Hello! ພົບກັນອີກແລ້ວ…, ໃນບົດຄວາມນີ້ຈະເປັນການແນະນຳເຄື່ອງມື ພ້ອມວິທີໃຊ້ງານເຄື່ອງມືທີ່ມີຊື່ວ່າ Vim ແບບສັ້ນໆ ໂດຍຂຽນຈາກການສະຫຼຸບສິ່ງທີ່ໂຕຂ້ອຍເອງໄດ້ສຶກສາ ແລະ ຄວາມເຂົ້າໃຈສ່ວນໂຕເປັນຫຼັກ ຜິດພາດບ່ອນໃດລົບກວນຕິຊົມເພື່ອນຳມາປັບແກ້ໃນການຂຽນບົດຄວາມຕໍ່ໄປ.
What?
Vim ຫຼື ຊື່ເຕັມແມ່ນ Vi IMproved ແມ່ນເຄື່ອງມື ຫຼື ໂປຣແກຣມແກ້ໄຂຂໍ້ຄວາມ (Text Editor) ຍອດຮິດໂຕໜຶ່ງທີ່ພັດທະນາຕໍ່ມາຈາກ Vi ທີ່ມີຢູ່ແລ້ວ ໃຫ້ມີຄວາມສາມາດທີ່ຫຼາກຫຼາຍຂຶ້ນ ແລະ ປັບແຕ່ງ(Custom)ເອງໄດ້ແລ້ວເຊັ່ນ: ສາມາດປັບສີ syntax ໃຫ້ກັບ code, ສາມາດສະແດງເລກແຖວ, ປັບຂະໜາດ tab ວ່າຈະໃຫ້ຫຍັບໄປຈັກໂຕອັກສອນ…, ແລະ ຍັງສາມາດເຮັດວຽກໄດ້ໃນຫຼາຍລະບົບປະຕິບັດການບໍວ່າຈະເປັນ Windows, MacOS, Linux…
Vim ເປັນເຄື່ອງມືທີ່ຄ້ອນຂ້າງທີ່ຈະຮຽນຮູ້ວິທີໃຊ້ງານໄດ້ຍາກສຳຫຼັບມືໃໝ່ ແຕ່ກໍໄດ້ຮັບຄວາມນິຍົມ ແລະ ແຜ່ຫຼາຍໃນໝູ່ Programmer, Developer, Hacker… ເພາະມັນຖືກອອກແບບມາໃຫ້ສາມາດແກ້ໄຂເນື້ອຫາຂອງໄຟລ໌ໄດ້ຜ່ານ Command Line ຖ້າໃຫ້ນຶກພາບອອກງ່າຍໆຄືສາມາດໃຊ້ແກ້ໄຂເນື້ອຫາຂອງໄຟລ໌ໃນ Server ທີ່ເປັນ Command Line Interface ລ້ວນ ໄດ້ເຊັ່ນ: Ubuntu Server ໂດຍບໍ່ຈຳເປັນຕ້ອງໃຊ້ Mouse ຄືແກ້ໄຂໃນ Windows ທີ່ເປັນແບບ Graphic User Interface ທີ່ເຮົາທຸກຄົນຄຸ້ນເຄີຍ.
ເຊິ່ງໃນບົດຄວາມນີ້ຈະອ້າງອີງ ແລະ ສາທິດການໃຊ້ງານຜ່ານ Linux(Ubuntu) ເປັນຫຼັກ.
Why?
ກ່ອນທີ່ຈະເລີ່ມເຂົ້າສູ່ບົດຄວາມເຮົາມາຕັ້ງຄຳຖາມນຳກັນກ່ອນວ່າເປັນຕ້ອງໃຊ້ vim? ສຳຫຼັບຄົນທີ່ບໍ່ເຄີຍໃຊ້ vim ຫຼື ອາດຈະເຄີຍໃຊ້ມາແດ່ແລ້ວ ອາດຈະມີຄຳຖາມຢູ່ໃນຫົວວ່າ ເປັນຫຍັງຕ້ອງໃຊ້ vim, ຮຽນໃຊ້ກະຍາກ, ໃຊ້ເວລາດົນກວ່າຈະຄຸ້ນເຄີຍ-ທະນັດ…, Text Editor ອື່ນໆທີ່ໃຊ້ງານງ່າຍໆກໍມີຫຼາຍ…
ແລ້ວທຸກຄົນຄິດວ່າເປັນຫຍັງເຮົາຈັ່ງຄວນໃຊ້ vim?, ເຫດຜົນດຽວ ແລະ ເຫດຜົນຫຼັກທີ່ຕ້ອງໃຊ້?
ນີ້ ເລີຍ:
ຕຳນານ Meme ແລະ ຄວາມເປັນຈິດໜຶ່ງໃຈດຽວທີ່ຕິດມາກັບ vim
ບໍວ່າຈະເຄີຍໃຊ້ມາກ່ອນ ຫຼື ບໍ, ຖ້າເຈົ້າໄດ້ລອງເປີດໃຊ້ vim ແລ້ວອອກບໍ່ເປັນ ຈົນໄດ້ໄປຄົ້ນຫາວິທີ, ໃຫ້ຮູ້ໄວ້ວ່າເຈົ້າບໍ່ແມ່ນຄົນດຽວ ເພາະ We are FAMILY!, ຍັງມີອີກກວ່າ 3 ລ້ານຄົນ ທີ່ໄດ້ຄົ້ນຫາ ແລະ ເຂົ້າເບິ່ງວິທີອອກຈາກ vim (How do i exit Vim) ໃນ StackOverflow.
ພໍລະໆ ມາເຂົ້າສູ່ເນື້ອຫາຫຼັກຂອງບົດຄວາມເລີຍດີກວ່າ~
Installation
ປົກກະຕິ Vim ຈະຖືກຕິດຕັ້ງມາໂດຍ default ໃຫ້ກັບ OS ຕະກູນ Linux ບາງໂຕເຊັ່ນ: Kali-Linux, ເຊິ່ງສາມາດກວດສອບໄດ້ວ່າໃນເຄື່ອງມີ Vim ແລ້ວ ຫຼື ບໍ ໄດ້ໂດຍການໃຊ້ຄຳສັ່ງ:
which vim
ຖ້າຂຶ້ນຕາມຮູບຕົວຢ່າງດ້ານເທິງແປວ່າໃນເຄື່ອງມີ Vim ຢູ່ແລ້ວ, ແຕ່ຖ້າບໍ່ມີເຮົາກໍສາມາດຕິດຕັ້ງໄດ້ງ່າຍໆໂດຍການເປີດ Terminal ແລ້ວໃຊ້ຄຳສັ່ງ:
sudo apt-get -y install vim
ສຳຫຼັບ Windows ແລະ MacOS ສາມາດອ່ານລາຍລະອຽດວິທີຕິດຕັ້ງເພີ່ມເຕີມໄດ້ຈາກ https://www.vim.org/download.php
ເມື່ອຕິດຕັ້ງສຳເລັດສາມາດໃຊ້ຄຳສັ່ງ vim ເພື່ອເປີດໃຊ້ງານໄດ້ເລີຍ:
vim
How?
ໃນການເປີດໃຊ້ Vim ເຮົາສາມາດເປີດໃຊ້ໄດ້ 2 ແບບຄື: ເປີດສະເພາະໄຟລ໌ນັ້ນໄຟລ໌ດຽວ ແລະ ເປີດແບບເປັນ path
1. ການເປີດສະເພາະໄຟລ໌
vim filename
ຄຳສັ່ງນີ້ເປັນການເປີດໄຟລ໌ທີ່ມີຢູ່ແລ້ວຂຶ້ນມາເພື່ອອ່ານ ແລະ ແກ້ໄຂເນື້ອຫາ ແຕ່ຖ້າບໍ່ມີໄຟລ໌ກໍຈະເປັນການສ້າງໄຟລ໌ໃໝ່ຂຶ້ນມາ
- ຕົວຢ່າງເປີດໄຟລ໌ package.json:
vim package.json
2. ການເປີດແບບເປັນ path/directory
- ເປີດໃນ path/directory ທີ່ຢູ່ປັດຈຸບັນ
vim .
- ເປີດໃນ path/directory ທີ່ຕ້ອງການ
vim /path/dir_name
- ຕົວຢ່າງ:
vim /home/jockky/Desktop/github-test
ສຳຫຼັບການເປີດແບບ path ເຮົາສາມາດໃຊ້ key arrow ໃນ keyboard ໃນການເລື່ອນຂຶ້ນ-ລົງເພື່ອໄປຍັງ directory ຫຼື file ທີ່ເຮົາຕ້ອງການເປີດ ແລະ ສາມາດເລື່ອນໄປຍັງ
../
ແລ້ວEnter
ເພື່ອຍ້ອນກັບໄປ directory ກ່ອນໜ້າໄດ້.
Mode ໃນ VIM
Mode ໃນ Vim ຫຼື ວິທີທີ່ໃຊ້ຕິດຕໍ່ກັບຜູ້ໃຊ້ໃນ Vim ຈະຖືກແບ່ງອອກເປັນ 4 Modes ຫຼັກໆເຊິ່ງແຕ່ລະ Mode ກໍຈະໃຫ້ຜົນລັບທີ່ແຕກຕ່າງກັນເຊັ່ນ:
1. Normal Mode
Normal Mode ເປັນ Mode ທີ່ເປີດຂຶ້ນມາໂດຍ Default ເຊິ່ງເຮົາສາມາດເລື່ອນ ຫຼື ເຄື່ອນຍ້າຍ Cursor ເພື່ອຊອກຫາ-ອ່ານຂໍ້ຄວາມໄດ້ເທົ່ານັ້ນ
2. Command-Line Mode
Command-Line Mode ສາມາດກົດ Esc
ໃນ Keyboard ຫຼັງເປີດໃຊ້ງານ Vim ເພື່ອເຂົ້າສູ່ Mode ນີ້, ເປັນ Mode ທີ່ຈະຮັບຄຳສັ່ງຫຼັງ prefix(:
, /
, ?
, !
) ມາເຮັດວຽກເພື່ອສັ່ງການໃຫ້ ບັນທຶກ, ປິດໄຟລ໌, ປ່ຽນ Mode… ເຊັ່ນ:
ອະທິບາຍຄຳສັ່ງ:
:q = ໃຊ້ເພື່ອປິດໄຟລ໌
:qa = ໃຊ້ເພື່ອອກຈາກໄຟລ໌ທັງໝົດ
:w = ໃຊ້ເພື່ອບັນທຶກໄຟລ໌
:wq ຫຼື :x = ໃຊ້ເພື່ອບັນທຶກ ແລະ ປິດໄຟລ໌ພ້ອມກັນ
:q! ຫຼື ZQ = ໃຊ້ເພື່ອອອກຈາກໄຟລ໌ໂດຍບໍ່ບັນທຶກ
- ຕົວຢ່າງການໃຊ້ຄຳສັ່ງ
:wq
ເພື່ອບັນທຶກ ແລະ ປິດໄຟລ໌ພ້ອມກັນ:
ສັງເກດວ່າໃນມຸມຊ້າຍລຸ່ມຂອງໜ້າ vim ຈະເປັນບ່ອນທີ່ສະແດງຄຳສັ່ງທີ່ເຮົາໃຊ້
3. Insert Mode
Insert Mode ໃຊ້ສຳຫຼັບພິມ ແລະ ແກ້ໄຂເນື້ອຫາຂອງໄຟລ໌ຄືກັບ Text Editor ໂຕອື່ນໆ, ເຮົາສາມາດເຂົ້າສູ່ Mode ນີ້ໄດ້ໂດຍການກົດ i
/a
/o
... ແລະ ສາມາດກົດ Esc
ໃນ Keyboard ເພື່ອອອກຈາກ Insert Mode.
ຄຳສັ່ງຫຼັກໆທີ່ໃຊ້ໃນ Insert Mode:
ອະທິບາຍຄຳສັ່ງທີ່ໃຊ້ໃນ Insert Mode:
Note: ຕ້ອງກົດEsc
ທຸກຄັ້ງເພື່ອໃຊ້ຄຳສັ່ງ
yy = copy ຂໍ້ຄວາມທັງໝົດໃນແຖວປັດຈຸບັນ
p = ວາງ (paste) ຂໍ້ຄວາມທີ່ copy ມາ
d = ລົບຂໍ້ຄວາມ 1 ໂຕ
dd = ລົບຂໍ້ຄວາມທັງໝົດໃນແຖວປັດຈຸບັນ
a = Cursor ຈະຫຍັບຈາກຈຸດທີ່ເຮົາຢູ່ໄປ 1 ໂຕອັກສອນ ແລະ ເຂົ້າສູ່ Insert Mode
A = ຫຍັບ Cursor ໄປທ້າຍແຖວ ແລະ ເຂົ້າສູ່ Insert Mode
i = ເຂົ້າສູ່ Insert Mode ໃນຈຸດ Cursor ປັດຈຸບັນ ແລະ ເຂົ້າສູ່ Insert Mode
o = ຫຍັບ Cursor ໄປແຖວໃໝ່ 1 ແຖວ ແລະ ເຂົ້າສູ່ Insert Mode
O = ຫຍັບ Cursor ກັບໄປແຖວກ່ອນໜ້າ 1 ແຖວ ແລະ ເຂົ້າສູ່ Insert Mode
s = ລົບ 1 ໂຕອັກສອນໃນຈຸດ Cursor ປັດຈຸບັນ ແລະ ເຂົ້າສູ່ Insert Mode
S = ລົບໂຕອັກສອນ 1 ແຖວໃນຈຸດທີ່ Cursor ຢູ່ປັດຈຸບັນ ແລະ ເຂົ້າສູ່ Insert Mode
C = ລົບທຸກໂຕອັກສອນໃນແຖວທີ່ Cursor ຢູ່ປັດຈຸບັນໄປຈົນສຸດແຖວ ແລະ ເຂົ້າສູ່ Insert Mode
r = ແທນທີ່ໂຕອັກສອນທີ່ຈະພິມ 1 ໂຕອັກສອນໃນຈຸດທີ່ Cursor ຢູ່ປັດຈຸບັນ ແລະ ເຂົ້າສູ່ Insert Mode
R = ເປັນການເຂົ້າສູ່ Mode ຍ່ອຍທີ່ຈະແທນທີ່ທຸກໂຕອັກສອນທີ່ພິມ
u = ຍົກເລີກ ຫຼື ຍ້ອນກັບການກະທຳກັບຫຼັງ (Undo) ຫຼື ກໍຄື Ctrl+Z ທີ່ເຮົາຄຸ້ນເຄີຍນັ້ນເອງ
Ctrl+R = ຍ້ອນກັບການກະທຳໄປໜ້າ (Redo) ກໍຄື Ctrl+Y ທີ່ເຮົາຄຸ້ນເຄີຍນັ້ນເອງ
4. Visual Mode
Visual Mode ເຮົາສາມາດເຂົ້າສູ່ Mode ນີ້ໄດ້ໂດຍການກົດ v
ໃນ keyboard, ໃຊ້ສຳຫຼັບ Highlight Text ເວລາເລື່ອນ Cursor ແລະ ໃຊ້ເພື່ອຈັດການກັບຂໍ້ຄວາມທີ່ຖືກ Highlight ໄດ້ໃນຮູບແບບຕ່າງໆໂດຍໃຊ້ຄຳສັ່ງທີ່ມີໃນ Mode ນີ້ເຊັ່ນ:
ອະທິບາຍຄຳສັ່ງທີ່ໃຊ້ໃນ Visual Mode:
v = ໃຊ້ເພື່ອເລີ່ມ Highlight ໂຕອັກສອນຈາກຈຸດ Cursor ທີ່ຢູ່ປັດຈຸບັນໄປໜ້າ ຫຼື ຖອຍຫຼັງຈົນກວ່າຈະອອກຈາກ Mode
V = ໃຊ້ເພື່ອເລີ່ມ Highlight ໂຕອັກສອນໝົດແຖວຈາກຈຸດ Cursor ທີ່ຢູ່ປັດຈຸບັນໄປແຖວໜ້າ ຫຼື ແຖວຫຼັງ
Ctrl+V = ໃຊ້ເພື່ອ Highlight ໂຕອັກສອນໃນຮູບແບບກ່ອງ(Box) ຈາກຈຸດ Cursor ປັດຈຸບັນ
ຄຳສັ່ງຍ່ອຍທີ່ສາມາດໃຊ້ຂະນະທີ່ຢູ່ໃນ Visual Mode:
d / x = ລົບໂຕອັກສອນທັງໝົດທີ່ highlight ຢູ່
s = ແທນທີ່ໂຕອັກສອນທີ່ highlight ຢູ່ດ້ວຍໂຕອັກສອນທີ່ຈະພິມຕໍ່ໄປ
- ຕົວຢ່າງການໃຊ້ຄຳສັ່ງ
Ctrl+V
ເພື່ອ highlight ແບບກ່ອງ (Box)
ນອກຈາກຄຳສັ່ງທັງໝົດທີ່ກ່າວມາແລ້ວຍັງມີອີກຫຼາຍຄຳສັ່ງທີ່ສາມາດໃຊ້ໃນ Vim ໄດ້, ສຳຫຼັບໃຜທີ່ສົນໃຈສາມາດສຶກສາຕໍ່ໄດ້ຈາກ Cheatsheet