7 วิธีใช้งาน Vi อย่างมีประสิทธิภาพ

คนเขียนโปรแกรมส่วนใหญ่เริ่มจากการใช้ไอดีอี (IDE: Integrated Development Environment) เช่น วิชวลสตูดิโอ (Visual Studio) หรือ เอคลิปส์ (Eclipse)  แต่เมื่อเวลาผ่านไป คอมพิวเตอร์มีประสิทธิภาพมากขึ้น ไอดีอีเหล่านี้ก็ใช้ทรัพยากรมากขึ้นตาม จนอาจจะใช้มากเกินความจำเป็น และบางครั้งไอดีอีแต่ละค่ายก็มีความสามารถที่โดดเด่นแตกต่างกัน ถ้าเลือกตัวหนึ่ง ก็จะไม่ได้ใช้อีกตัวหนึ่ง จึงต้องการหาไอดีอีตัวใหม่ที่ยืดหยุ่นกว่า ทั้งความสามารถและประสิทธิภาพ มาใช้งานทดแทน

อินเทลลิเจ ไอเดีย (IntelliJ IDEA) เป็นทางเลือกที่มาแรง (มาสักพักแล้ว) ในสายจาวา จนกูเกิล (Google) เลือกที่จะเอาไปพัฒนาต่อเป็นไอดีอีหลักในการพัฒนาแอปบนมือถือ นั่นคือแอนดรอยด์สตูดิโอ (Android Studio)

แต่ไหนๆจะเริ่มใหม่ทั้งทีก็เลยเกิดนึกอยากกลับไปใช้เท็กซ์เอดิเตอร์ (Text Editor) คงกระพันอย่างวีไอ (Vi) เพราะไม่ได้ใช้ทรัพยากรมาก และสามารถเพิ่มปลั๊กอินได้ในวีไอเอ็ม (Vim: Vi Improved) ศึกษาไปเรื่อยๆก็เห็นว่า ชุมชนคนใช้งานค่อนข้างคึกคัก จนเจอบทความหนึ่งน่าสนใจ จึงขอนำมาสรุปสั้นๆ เป็น “7 วิธีใช้งาน Vi อย่างมีประสิทธิภาพ” (7 habits of effective text editing)

  1. ย้ายเคอร์เซอร์ (cursor) ให้เร็วขึ้น
    • กระโดดไปคำที่ต้องการด้วยการค้นหา (/pattern)
    • ค้นหาซ้ำคำเดิมด้วยคำสั่ง *
    • เพิ่มออพชั่น incsearch เพื่อกระโดดไปคำที่เจอคำแรกทันที
    • เพิ่มออพชั่น hlsearch เพื่อเน้นคำที่ต้องการค้นหา
    • ไปวงเล็บปิดด้วยคำสั่ง %
    • หาบรรทัดที่ประกาศตัวแปรหรือฟังก์ชันด้วยคำสั่ง gd
  2. ไม่พิมพ์ข้อความเดิมซ้ำ
    • กด Ctrl-N เพื่อแสดงข้อความที่เคยพิมพ์ไปแล้ว คล้ายอินเทลลิเซนส์ (intellisense) ของวิชวลสตูดิโอ
    • คำสั่ง . จะเรียกคำสั่งล่าสุดซ้ำอีกครั้ง
    • ใช้มาโครช่วย
  3. หาตัวช่วยสำหรับความผิดพลาดที่เกิดขึ้นบ่อย
    • ใช้คำสั่ง abbr เพื่อย่อข้อความยาวๆให้สั้นลง เช่น :abbr psvm public static void main
    • เพิ่มออพชั่น syntax จะเห็นสีของข้อความที่เป็นคีย์เวิร์ดของแต่ละภาษาออกจากตัวแปรหรือชื่อฟังก์ชัน
  4. ทำงานพร้อมกันหลายไฟล์ในเซสชั่นเดียวกัน
    • ใช้วินโดว์หรือแท็บในการเปิดไฟล์พร้อมๆกัน
  5. ใช้คำสั่งภายนอกเพื่อลดการพิมพ์ข้อความ
    • ใช้คำสั่ง ! เพื่อเรียกคำสั่งของระบบปฏิบัติการ เช่น !wc -w เพื่อนับคำ !date เพื่อแทรกวันที่ปัจจุบัน
  6. จัดการพิมพ์ข้อความที่มีโครงสร้างตายตัว เช่น วงจรการเขียน คอมไพล์ และ แก้ไข
    • เปลี่ยน makeprg สำหรับแต่ละภาษา เช่น ใช้ mvn แทน javac
    • ถ้าเปลี่ยน makeprg ต้องตั้งค่า errorformat ด้วย เพื่อให้วีไอแสดงหน้าต่างควิกฟิกซ์ (Quickfix) และกระโดดไปยังตำแหน่งที่เกิดความผิดพลาดได้
  7. ทำให้เป็นนิสัย! เนื่องจากวีไอมีความสามารถมาก และไม่สามารถค้นหาจากเมนูได้เหมือนการใช้เมาส์ในไอดีอี จึงควรศึกษาเฉพาะบางความสามารถก็พอ เพราะการใช้งานวีไอต้องอาศัยความคุ้นเคยสูงมาก บางงานที่ไม่ค่อยได้ใช้ก็จะถูกลืม

บทความยังได้แนะนำ 3 ขั้นตอนที่ช่วยฝึกให้เป็นนิสัย

  1. สังเกตการใช้งานที่ซ้ำๆของตัวเองว่ามันใช้เวลานานเกินจำเป็นหรือไม่
  2. ถ้ามี วีไอมีความสามารถที่ตอบโจทย์หรือไม่
  3. ถ้ามี พยายามใช้งานจนชินมือ

การใช้งานวีไอที่ผ่านมา มักจะจบลงด้วยการที่รู้สึกว่ายังคุ้นเคยกับการใช้เมาส์ (mouse) มากกว่า แต่คราวนี้จะขอลองจริงจังอีกสักครั้งตามที่กล่าวไว้ในข้อ 7

ที่มา: http://www.moolenaar.net/habits.html

สแลช (slash)