โปรแกรมแก้ไขข้อความแบบ modal ตัวใหม่ชื่อ McWig ได้ดึงดูดความสนใจจากนักพัฒนา สร้างการอภิปรายที่สำคัญเกี่ยวกับอนาคตของโปรแกรมแก้ไขโค้ดแบบ terminal-based ที่สร้างขึ้นด้วย Go เป็นโปรเจกต์ speed run ตัวแก้ไขที่ได้รับแรงบันดาลใจจาก Vim ตัวนี้ผสมผสานการแก้ไขแบบ modal แบบดั้งเดิมเข้ากับฟีเจอร์สมัยใหม่อย่างการรองรับ LSP และการแยกวิเคราะห์ tree-sitter
โปรเจกต์นี้แสดงให้เห็นแนวทางที่น่าสนใจในการพัฒนาโปรแกรมแก้ไขข้อความ ซึ่งผู้สร้างให้ความสำคัญกับการสำรวจมากกว่าการวางแผนอย่างรอบคอบ ปัจจุบัน McWig รองรับเฉพาะไฟล์ Go เท่านั้น แต่มีฟีเจอร์ที่นักพัฒนาหลายคนคาดหวังจากโปรแกรมแก้ไขสมัยใหม่ พร้อมทั้งรักษาระบบ keybinding ของ Vim ที่คุ้นเคยซึ่งผู้ใช้ขั้นสูงชื่นชอบ
คุณสมบัติหลักของ Text Editor McWig :
- LSP autocomplete, goto definition, hover info
- รองรับการไฮไลต์ syntax ด้วย Tree-sitter
- ธีมสีที่นำมาจาก Helix editor
- รองรับ Macro
- ฟังก์ชันการทำงานแบบ org-mode ของ Emacs
- การแก้ไขแบบ Modal พร้อม Vim keybindings
- ปัจจุบันรองรับเฉพาะไฟล์ Go เท่านั้น
ชุมชนให้ความสำคัญกับความสามารถในการขยายและระบบ Plugin
ประเด็นที่โดดเด่นที่สุดในการอภิปรายของชุมชนมุ่งเน้นไปที่ความสามารถในการขยายและการรองรับ plugin นักพัฒนาหลายคนได้ตั้งคำถามเกี่ยวกับวิธีที่ McWig อาจจัดการกับการปรับแต่งเมื่อเปรียบเทียบกับโปรแกรมแก้ไขที่มีชื่อเสียงอย่าง Vim และ Emacs ความกังวลนี้สะท้อนให้เห็นความเข้าใจในวงกว้างว่าโปรแกรมแก้ไขข้อความที่ประสบความสำเร็จต้องมีระบบ extension ที่แข็งแกร่งเพื่อสร้างระบบนิเวศที่เจริญรุ่งเรือง
การอภิปรายนี้เน้นย้ำถึงความท้าทายสำคัญสำหรับโปรแกรมแก้ไขใหม่ ๆ คือการตัดสินใจว่าจะสร้างระบบ plugin ใหม่หมดเลย หรือจะใช้ประโยชน์จากระบบนิเวศที่มีอยู่แล้ว สมาชิกชุมชนบางคนแนะนำว่าโปรแกรมแก้ไขสมัยใหม่ควรหาวิธีใช้ plugin จากแพลตฟอร์มที่มีชื่อเสียงแทนการเริ่มต้นใหม่ทั้งหมด โดยตระหนักถึงความพยายามอย่างมหาศาลที่ต้องใช้ในการสร้างไลบรารี extension ที่ครอบคลุม
การนำไปใช้งานทางเทคนิคดึงดูดความสนใจ
แง่มุมทางเทคนิคหลายประการของ McWig ได้ดึงดูดความสนใจจากนักพัฒนา การใช้ diff สำหรับฟังก์ชัน undo/redo ได้รับการสังเกตเป็นพิเศษว่าเป็นแนวทางที่ชาญฉลาดในการจัดการ state รายละเอียดการนำไปใช้งานนี้แสดงให้เห็นว่าโปรแกรมแก้ไขที่แตกต่างกันสามารถแก้ปัญหาทั่วไปด้วยวิธีการทางเทคนิคที่สร้างสรรค์
การรวม development tools สมัยใหม่อย่าง Language Server Protocol (LSP) และการแยกวิเคราะห์ tree-sitter ของตัวแก้ไขแสดงให้เห็นว่าโปรเจกต์ใหม่สามารถได้รับประโยชน์จากโปรโตคอลมาตรฐานได้อย่างไร ฟีเจอร์เหล่านี้ช่วยให้ McWig สามารถให้บริการ autocomplete, syntax highlighting และการนำทางโค้ดโดยไม่ต้องนำ logic เฉพาะภาษามาใช้ใหม่
การเปรียบเทียบกับโปรแกรมแก้ไขที่มีอยู่
สมาชิกชุมชนได้เปรียบเทียบระหว่าง McWig กับโปรแกรมแก้ไขแบบ terminal-based อื่น ๆ โดยเฉพาะ Helix นักพัฒนาบางคนกล่าวถึงการใช้ Helix เป็นเครื่องมือหลักในการทำงานประจำวัน พร้อมทั้งแสดงความสนใจในการทดลองใช้ McWig การตัดสินใจของโปรเจกต์ในการยืม color themes จาก Helix ยังได้สร้างแรงบันดาลใจให้กับนักพัฒนาคนอื่น ๆ ที่กำลังทำงานกับเครื่องมือที่คล้ายกัน
การอภิปรายเผยให้เห็นว่าภูมิทัศน์ของโปรแกรมแก้ไข terminal ยังคงพัฒนาต่อไป โดยมีโปรเจกต์ใหม่ ๆ ที่สร้างขึ้นจากบทเรียนที่ได้เรียนรู้จากผู้มาก่อน โปรแกรมแก้ไขใหม่แต่ละตัวนำเสนอแนวทางที่แตกต่างกันในการแก้ปัญหาทั่วไป ซึ่งมีส่วนช่วยในการพัฒนาเครื่องมือการพัฒนาโดยรวม
คีย์ผูกที่สำคัญ:
การกดปุ่ม | ฟังก์ชัน |
---|---|
Tab | องค์ประกอบถัดไปในป๊อปอัป |
Shift-Tab | องค์ประกอบก่อนหน้าในป๊อปอัป |
Space + f | ค้นหาไฟล์ในโปรเจ็กต์ Git |
Space + b | บัฟเฟอร์ |
Space + s + s | ค้นหาข้อความแบบฟัซซี่ |
Ctrl-W + V | แยกหน้าต่าง |
Space + \ | สลับไฟล์ |
Space + / | ค้นหาข้อความในโปรเจ็กต์ |
![]() |
---|
ภาพหน้าจอของหน้า repository บน GitHub สำหรับโปรเจกต์ McWig ที่แสดงโครงสร้างและประวัติการ commit ซึ่งเกี่ยวข้องกับการเปรียบเทียบกับโปรแกรมแก้ไขข้อความอื่นๆ |
การยอมรับจากนักพัฒนาและศักยภาพในอนาคต
แม้จะถูกติดป้ายว่าเป็นโปรเจกต์ toy ที่มี bug ที่ยอมรับแล้ว แต่ McWig ได้สร้างความสนใจอย่างแท้จริงจากนักพัฒนาที่เต็มใจทดสอบและอาจยอมรับเครื่องมือใหม่ ความโปร่งใสของผู้สร้างเกี่ยวกับข้อจำกัดปัจจุบันของตัวแก้ไข รวมถึงคำเตือนเกี่ยวกับความเสียหายที่อาจเกิดขึ้นกับไฟล์ ได้รับการตอบรับที่ดีจากชุมชน
การตอบรับในเชิงบวกแสดงให้เห็นว่ายังคงมีความต้องการนวัตกรรมในโปรแกรมแก้ไขข้อความอย่างต่อเนื่อง แม้ในพื้นที่ที่ถูกครอบงำโดยเครื่องมือที่มีชื่อเสียง นักพัฒนาชื่นชมการได้เห็นแนวทางใหม่ ๆ ในการแก้ปัญหาที่คุ้นเคย และเต็มใจที่จะทดลองกับโปรเจกต์ในระยะเริ่มต้นที่แสดงให้เห็นถึงความหวัง
การเดินทางของ McWig จากโปรเจกต์ทดลองสู่โปรแกรมแก้ไขที่อาจใช้ในการทำงานประจำวันแสดงให้เห็นว่าการพัฒนาแบบเปิดและข้อเสนอแนะจากชุมชนสามารถชี้นำวิวัฒนาการของซอฟต์แวร์ได้อย่างไร แผนของผู้สร้างในการพัฒนาสิ่งนี้ให้เป็นโปรแกรมแก้ไขที่เสถียรและมีฟีเจอร์ครบครันน่าจะขึ้นอยู่กับการมีส่วนร่วมและการมีส่วนร่วมของชุมชนอย่างต่อเนื่อง
อ้างอิง: McWig (temporary name)