Tools The Series Ep. 2 — ແນະນຳເຄື່ອງມື ແລະ ວິທີໃຊ້ງານ Vim

JocKKy
LaoHacker
Published in
4 min readDec 31, 2023

Introduction

Hello! ພົບກັນອີກແລ້ວ…,​ ໃນບົດຄວາມນີ້ຈະເປັນການແນະນຳເຄື່ອງມື ພ້ອມວິທີໃຊ້ງານເຄື່ອງມືທີ່ມີຊື່ວ່າ Vim ແບບສັ້ນໆ ໂດຍຂຽນຈາກການສະຫຼຸບສິ່ງທີ່ໂຕຂ້ອຍເອງໄດ້ສຶກສາ ແລະ ຄວາມເຂົ້າໃຈສ່ວນໂຕເປັນຫຼັກ ຜິດພາດບ່ອນໃດລົບກວນຕິຊົມເພື່ອນຳມາປັບແກ້ໃນການຂຽນບົດຄວາມຕໍ່ໄປ.

https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Vimlogo.svg/1200px-Vimlogo.svg.png

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?, ເຫດຜົນດຽວ ແລະ ເຫດຜົນຫຼັກທີ່ຕ້ອງໃຊ້?

ນີ້ ເລີຍ:

ໃຊ້ VIM = ເທ້!

ຕຳນານ Meme ແລະ ຄວາມເປັນຈິດໜຶ່ງໃຈດຽວທີ່ຕິດມາກັບ vim

ບໍວ່າຈະເຄີຍໃຊ້ມາກ່ອນ ຫຼື ບໍ,​ ຖ້າເຈົ້າໄດ້ລອງເປີດໃຊ້ vim ແລ້ວອອກບໍ່ເປັນ ຈົນໄດ້ໄປຄົ້ນຫາວິທີ, ໃຫ້ຮູ້ໄວ້ວ່າເຈົ້າບໍ່ແມ່ນຄົນດຽວ ເພາະ We are FAMILY!, ຍັງມີອີກກວ່າ 3 ລ້ານຄົນ ທີ່ໄດ້ຄົ້ນຫາ ແລະ ເຂົ້າເບິ່ງວິທີອອກຈາກ vim (How do i exit Vim) ໃນ StackOverflow.

legendary question from 11years ago
https://preview.redd.it/2ojelnv08qm61.jpg?width=640&crop=smart&auto=webp&s=6c61b12222bc9f18e64cae6c7a88f7614fffce14

ພໍລະໆ ມາເຂົ້າສູ່ເນື້ອຫາຫຼັກຂອງບົດຄວາມເລີຍດີກວ່າ~

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

https://en.wikipedia.org/wiki/File:Vim_modes.svg

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

References

--

--

JocKKy
LaoHacker

HELLO!! THIS is JOCKKY!, HE is a boy who REALLY LOVEs Drinking MILK... || Discord: jockky