วงการโปรแกรมแก้ไขข้อความกำลังเข้าสู่ยุคเฟื่องฟูอีกครั้ง โดยมีโปรแกรมแก้ไขข้อความรูปแบบ Vi เกิดขึ้นใหม่มากมายในทศวรรษที่ผ่านมา แนวโน้มนี้เห็นได้ชัดจากการเปิดตัวล่าสุดของโปรแกรม 'ad' editor ซึ่งสะท้อนให้เห็นถึงการเคลื่อนไหวที่กำลังเติบโตในการปรับปรุงแนวคิดการแก้ไขข้อความแบบดั้งเดิม ในขณะที่ยังคงรักษาประสิทธิภาพของการแก้ไขแบบ modal ไว้
เอดิเตอร์สมัยใหม่ที่มีลักษณะคล้าย Vi ที่โดดเด่น:
- Kakoune
- Helix
- Vis
- Ki
- Ad
คุณสมบัติสำคัญที่ขับเคลื่อนนวัตกรรม:
- การรองรับ LSP
- การแยกวิเคราะห์โค้ดด้วย Tree-sitter
- การปรับปรุงการแก้ไขแบบโหมด
- การรองรับภาษาโปรแกรมมิ่งสมัยใหม่
- ระบบการกำหนดคีย์ลัดที่พัฒนาขึ้น
การปฏิวัติด้วย LSP
Language Server Protocol (LSP) ได้กลายเป็นตัวเปลี่ยนเกมในการพัฒนาโปรแกรมแก้ไขข้อความ จากการสนทนาในชุมชนพบว่า LSP ได้กำจัดอุปสรรคที่ใหญ่ที่สุดในการพัฒนาโปรแกรมแก้ไขข้อความใหม่ๆ โดยการแยกความซับซ้อนในการรองรับภาษาโปรแกรมสมัยใหม่ออกไป การทำให้การพัฒนาโปรแกรมแก้ไขข้อความเป็นประชาธิปไตยมากขึ้น รวมกับเครื่องมืออย่าง tree-sitter สำหรับการแยกวิเคราะห์ไวยากรณ์ ทำให้การสร้างโปรแกรมแก้ไขข้อความใหม่เป็นเรื่องที่เป็นไปได้มากขึ้นสำหรับนักพัฒนา
ทฤษฎีส่วนตัวของผมคือ เราต้องขอบคุณ LSP ที่กำจัดอุปสรรคหลักสำหรับโครงการโปรแกรมแก้ไขข้อความใหม่ๆ นั่นคือความซับซ้อนในการรองรับภาษาโปรแกรมและแนวปฏิบัติสมัยใหม่ การที่สามารถถ่ายโอนความซับซ้อนส่วนใหญ่ไปยัง language server (และส่วนที่เหลือไปยัง tree-sitter) ทำให้การพัฒนาโปรแกรมแก้ไขข้อความใหม่เป็นโครงการเสริมที่เป็นไปได้
ปัจจัยด้าน Rust
โปรแกรมแก้ไขข้อความใหม่จำนวนมากถูกพัฒนาด้วย Rust ซึ่งแสดงให้เห็นถึงแนวโน้มที่กว้างขึ้นในชุมชนนักพัฒนา การเกิดขึ้นของโปรแกรมแก้ไขข้อความอย่าง Helix, Ki และล่าสุดคือ 'ad' แสดงให้เห็นว่าการรับประกันความปลอดภัยและประสิทธิภาพของ Rust ทำให้มันเป็นตัวเลือกที่น่าสนใจสำหรับการสร้างเครื่องมือจัดการข้อความที่ซับซ้อน
วิวัฒนาการของแนวคิด Vi
ในขณะที่โปรแกรมแก้ไขข้อความใหม่เหล่านี้ได้รับแรงบันดาลใจจากวิธีการแก้ไขแบบ modal ของ Vi แต่พวกมันไม่ใช่แค่การทำซ้ำ หลายโปรแกรมพยายามแก้ไขปัญหาที่มีมานานเกี่ยวกับการผูกปุ่มและแนวคิดแบบดั้งเดิมของ Vi ตัวอย่างเช่น Kakoune ได้รับการชื่นชมในการปรับปรุงความสอดคล้องของการผูกปุ่มของ Vi ในขณะที่ 'ad' มุ่งที่จะผสมผสานการแก้ไขแบบ modal ของ Vi กับแนวทางการขยายความสามารถของ Acme
การถกเถียงเรื่องการผูกปุ่ม
ประเด็นที่น่าสนใจในการโต้เถียงของชุมชนเกี่ยวข้องกับข้อตกลงในการผูกปุ่ม ในขณะที่ Vi แบบดั้งเดิมใช้ตัวย่อที่จำได้ง่ายเช่น 'y' สำหรับ yank และ 'p' สำหรับ put แต่บางคนเสนอให้ใช้แบบสมัยใหม่เช่น 'x' สำหรับตัด และ 'c' สำหรับคัดลอก การถกเถียงนี้แสดงให้เห็นถึงความท้าทายในการรักษาสมดุลระหว่างประเพณีดั้งเดิมกับความคาดหวังด้านการใช้งานสมัยใหม่
การเพิ่มขึ้นของโปรแกรมแก้ไขข้อความใหม่เหล่านี้ไม่ได้แสดงถึงแค่นวัตกรรมทางเทคนิคเท่านั้น แต่ยังสะท้อนให้เห็นถึงชุมชนที่กำลังมองหาวิธีปรับปรุงและทำให้เครื่องมือของพวกเขาทันสมัย ในขณะที่ยังคงรักษาประสิทธิภาพที่ทำให้โปรแกรมแก้ไขข้อความสไตล์ Vi เป็นที่นิยม เมื่อเครื่องมือพัฒนายังคงพัฒนาต่อไป เราน่าจะได้เห็นแนวทางสร้างสรรค์ในการแก้ไขข้อความเพิ่มมากขึ้น
อ้างอิง: ad :: an adaptable text editor