Helix: ฝึกแก้โค้ดแบบเลือกก่อนสั่งด้วย multiple selections
ทำความเข้าใจ Helix ตั้งแต่โหมด Normal/Insert/Select ไปจนถึงการเลือกหลายตำแหน่งและทดสอบงานแก้ไขจริง
Helix เป็นเอดิเตอร์แบบ modal ที่ให้ “เลือกสิ่งที่จะเปลี่ยน” ก่อน “สั่งให้เปลี่ยน” วิธีคิดนี้ต่างจากการวางเคอร์เซอร์แล้วค่อยสั่งลบหรือแทนที่ในเอดิเตอร์ทั่วไป จุดเด่นคือ multiple selections เป็นส่วนหนึ่งของงานปกติ ไม่ใช่โหมดพิเศษสำหรับกรณีหายาก
เริ่มต้นด้วย tutor
หลังติดตั้งตามเอกสารทางการ ให้รัน hx --tutor ในเทอร์มินัล หรือเปิด Helix แล้วใช้ :tutor เพื่อฝึกในสภาพแวดล้อมที่ไม่เสี่ยงแก้ไฟล์จริง ควรทำแบบฝึกให้จบก่อนกำหนดคีย์ลัดเอง เพราะคีย์เดียวกันอาจมีความหมายต่างกันตามโหมด ตัวอย่างเช่น Normal mode ใช้นำทางและสั่งแก้ไข, Insert mode ใช้พิมพ์ข้อความโดยเข้าด้วย i, ส่วน Select/extend mode เข้าด้วย v เพื่อขยายขอบเขตที่เลือก
เปิดไฟล์ทดลองจากโปรเจกต์ที่มี Git แล้วลองเลือกคำหนึ่งคำ ตรวจว่าพื้นที่ที่ถูกเลือกตรงกับสิ่งที่ต้องการจริง ก่อนสั่งเปลี่ยนด้วย c วิธีนี้ช่วยเห็นความต่างของ Helix ชัดที่สุด: selection เป็นข้อมูลที่มองเห็นได้ก่อนลงมือ
ทำความเข้าใจ multiple selections
ใน Helix เคอร์เซอร์เป็น selection ความกว้างหนึ่งตัวอักษร และสามารถมี selection หลายจุดพร้อมกันได้ ตัวอย่างงานคือปรับชื่อข้อความซ้ำในไฟล์เดียว: หา instance ที่ต้องการ ตรวจแต่ละจุดที่เลือก แล้วสั่งเปลี่ยนครั้งเดียว อย่าเริ่มจากคำที่ปรากฏทั้งในโค้ดและคอมเมนต์จำนวนมาก เพราะการแก้แบบหลายจุดอาจกระทบตำแหน่งที่ไม่ควรแก้
ถ้าต้องเปลี่ยนชื่อ symbol ที่มีผลข้ามไฟล์ ให้พิจารณา rename ผ่าน language server ที่รองรับก่อน การเลือกข้อความซ้ำเป็นการแก้เชิงตัวอักษร ไม่ได้เข้าใจ scope ของภาษา การดู diff หลังแก้จึงสำคัญเสมอ โดยเฉพาะชื่อที่ซ้ำกับสตริง ข้อความผู้ใช้ หรือชื่อฟิลด์ใน API
เปิดและสลับไฟล์
Helix เรียกไฟล์ที่เปิดในหน่วยความจำว่า buffer สามารถใช้ picker หรือคำสั่งอย่าง :buffer-next และ :buffer-previous เพื่อสลับ buffer ที่เปิดอยู่ ระหว่างฝึกให้เปิดไฟล์สองสามไฟล์เท่านั้น แล้วลองกลับไปยังจุดเดิมโดยไม่พึ่งเมาส์มากนัก เมื่อเริ่มคล่องค่อยเพิ่มการตั้งค่าภาษา formatter และ language server ตามภาษาที่ใช้จริง
การใช้ Helix ในเทอร์มินัลเหมาะกับงาน SSH หรือเครื่องที่ต้องการเวิร์กโฟลว์คีย์บอร์ด แต่ประสบการณ์จะขึ้นกับเทอร์มินัล ฟอนต์ และเครื่องมือภาษาในเครื่องด้วย หาก syntax หรือการวิเคราะห์โค้ดไม่ขึ้น ให้ตรวจการติดตั้ง language server ไม่ใช่รีบสรุปว่าเอดิเตอร์ไม่รองรับภาษา
ทดลองกับงานจริงอย่างปลอดภัย
เลือกการแก้ขนาดเล็ก เช่น เปลี่ยนชื่อพารามิเตอร์เฉพาะฟังก์ชัน หรือแก้รูปแบบบรรทัดซ้ำไม่กี่แห่ง ทำใน branch แยก ฝึกเลือกก่อนสั่งและเปิด diff หลังบันทึก จากนั้นรันทดสอบของโปรเจกต์ ถ้าการเลือกหลายตำแหน่งทำให้แก้เกินขอบเขต ให้ย้อนกลับและลดจำนวน selection ก่อน
Helix เหมาะกับคนที่ยอมลงทุนเรียนโมเดลการแก้ไขใหม่เพื่อควบคุมการเปลี่ยนข้อความอย่างแม่นยำ ไม่จำเป็นต้องย้ายทั้งทีมทันที; เริ่มจากงานเฉพาะจุดและวัดเวลาที่ใช้จริงเมื่อพ้นช่วงฝึก
อ่านเพิ่มเติม: คู่มือการใช้ Helix และ เอกสาร Helix