คุณอาจไม่คิดว่าหลายส่วนของ Linux Desktop ซ่อนอยู่เบื้องหลังโค้ดซับซ้อน โปรแกรมและตั้งค่าระบบมากมายเก็บอยู่ในไฟล์ข้อความธรรมดา
คุณสามารถเปิดด้วย Text Editor แบบ GUI เช่น Gedit หรือ Kate แต่ Terminal มักเร็วกว่า โดยเฉพาะตอนต้องการสิทธิ์ Admin
สำหรับแก้ไขข้อความใน Terminal สองตัวเลือกยอดนิยมคือ GNU nano และ Vim ไหนดีกว่า? เราจะไม่ตัดสิน แต่อธิบายความแตกต่างหลักเพื่อให้คุณเลือกเอง
ประวัติสั้นของ GNU nano และ Vim
โครงการ GNU nano (มักเรียกว่า nano) สร้างในปี 1999 เพื่อเลียนแบบและปรับปรุงจาก Pico text editor นักพัฒนาอ้างว่า nano มีขนาด 2/3 ถึง 1/8 ของไบนารี Pico ทำให้เบาและใช้ได้แม้ระบบอ่อนแอ
Vim พัฒนาตั้งแต่ 1991 基於 Vi text editor ที่สร้างในปี 1976 เหมือน nano Vim เริ่มจากการปรับปรุงโครงการเก่า
GNU nano: ใช้ง่าย เหมาะมือใหม่
nano มีชื่อเสียงว่าใช้งานง่าย หากไม่เคยใช้ ก็เลื่อนลื่นเข้าไปได้โดยไม่ต้องช่วยเหลือ
เริ่มต้นด้วยการเปิด/สร้างไฟล์:
nano /home/user/HelloWorld.txt
จะเห็น UI คุ้นเคย: ชื่อไฟล์ด้านบน เนื้อหากลาง คำสั่งด้านล่าง ทำงานโดยกด Ctrl + ปุ่มที่ระบุ
ตัวอย่าง: ออกและบันทึก = Ctrl + X (ครั้งแรกกังวลเพราะเขียนแค่ "Exit" แต่พยายามแก้ไข nano จะถามว่าจะเซฟหรือไม่)
หน้าจอด้านล่างแสดงฟังก์ชันครบ: ตัด/วาง ค้นหา/แทนที่ และอื่นๆ
คุณสมบัติเด่นของ GNU nano:
- Autoconf support
- Goto-line# command w/o flag
- Case sensitive search
- Interactive search and replace
- Slang และ ncurses support
- Autoindent
- Displayed tab width option
- Regular expression search/replace
- Toggles for cmdline flags via meta keys
- Tab completion when reading/writing files
- Soft text wrapping (ไม่ wrap จริง ต่อท้ายด้วย $)
nano เหมาะสำหรับมือใหม่ที่เริ่มแก้ไขไฟล์จาก Command Line ใช้คีย์บอร์ดหลัก ไม่ต้องทิ้งความรู้ Text Editor แบบ GUI ไป
ติดตั้งบน Debian/Ubuntu:
sudo apt install nano
บน Fedora (RPM-based):
sudo dnf install nano
nano เป็นโปรแกรม CLI จะไม่เจอใน GNOME Software แต่ติดตั้งผ่าน Package Manager แบบเดิม เช่น Synaptic ได้
Vim: อันทรงพลัง แต่มี Learning Curve สูง
Vim ไม่เป็นมิตรกับมือใหม่เท่า nano เปิดไฟล์แล้วเห็นแค่เนื้อหา ไม่มีคำแนะนำการใช้งาน
เริ่มต้นง่าย: เปิดไฟล์ด้วย
vim /home/user/HelloWorld.txt
จากนั้นต้องอ่านเอกสาร ค้นหาออนไลน์ หรือกดปุ่มทดลอง (มี Safe guard: ไม่สามารถแก้ไขได้จนกด I เข้าสู่ Insert mode แก้เสร็จ กด Esc ออก)
คำสั่งอื่นๆ: กด : (colon) พิมพ์คำสั่ง กด Enter
ตัวอย่าง: บันทึก = :w Enter (w = write เข้าใจง่ายถ้าคิดเป็น read/write) ออก = :q Enter (q = quit)
เมื่อชินแล้ว UI แบบ Minimal ของ Vim มีความสวยงามเฉพาะตัว ไม่มี雜訊บน Terminal เห็นแค่ข้อความในไฟล์ หากพิมพ์ดี (ซึ่งน่าจะเป็น เพราะอยู่ใน CLI) Vim จะรู้สึกเป็นธรรมชาติ
อีกเหตุผลให้ลอง: Vim อันทรงพลังกว่า nano มาก มีฟีเจอร์มากกว่าตั้งแต่ติดตั้ง และปรับแต่งได้ด้วย Plugins และ Scripts
คุณสมบัติเด่นของ Vim:
- Automatic commands
- Completion commands
- Digraph input
- Higher memory limits than vanilla vi
- Split screen
- Session recovery
- Tab expansion
- Tag system
- Syntax coloring
หลังติดตั้ง Plugins ที่ต้องการ Vim กลายเป็น Text Editor ทรงพลัง ทดแทน Sublime Text หรือ VS Code ได้ ไม่ได้เขียนโค้ดก็ใช้ได้: มี Markdown plugin เหมาะสำหรับนักเขียน
Vim ยากกว่า nano? แน่นอน แต่ด้วยความสามารถเพิ่มฟีเจอร์จาก Editor อื่น คุณสามารถทำให้ Vim เป็นของตัวเองจริงๆ
ติดตั้งบน Debian/Ubuntu:
sudo apt install vim
บน Fedora:
sudo dnf install vim
GNU nano vs Vim: คุณชอบไหน?
หากยอมรับ Learning Curve ที่ชันกว่า อาจตกหลุมรัก Vim มันเรียบง่ายและสวยในทางของมัน
แต่ถ้าต้องการตัวเลือกตรงไปตรงมา ทำงานเสร็จ ไม่ต้องอ่าน Manual nano เป็นเลือกที่ดี การไม่ต้องอ่านคู่มือเป็นหนึ่งลักษณะของดีไซน์ที่ดี
วันสุดท้าย ทั้งคู่แก้ไขไฟล์ข้อความเดียวกันได้เท่าเทียม และเมื่อคุณรักโปรแกรมไหนโปรแกรมนั้น นี่คือวิธีนำ Plain text files มาใช้ใน Workflow ของคุณ