- การอัปเดตครั้งใหญ่ที่มาพร้อมกับ การปรับปรุงภาษาสคริปต์ Vim9 อย่างมาก, โหมด diff ที่ดีขึ้น, ความสามารถด้านการเติมคำอัตโนมัติแบบสมบูรณ์, และ การรองรับ Wayland แบบทดลอง เป็นต้น
- การเติมคำอัตโนมัติในโหมดแทรกได้รับการเสริมความสามารถด้วย fuzzy matching, การเติมคำจากรีจิสเตอร์, และ ตัวเลือก
completeopt แบบใหม่
- มีการปรับปรุง UI ตามแพลตฟอร์ม เช่น UI และคลิปบอร์ดบน Wayland, แผงแท็บแนวตั้ง, และ โหมดมืดแบบเนทีฟบน Windows
- ฟีเจอร์ของภาษาได้รับการขยาย เช่น Enums, Generic functions, Tuple types ทำให้นำไปใช้พัฒนาปลั๊กอินที่อาศัย AI ได้
- แม้หลังการจากไปของ Bram Moolenaar, Vim ยังคงรักษา ปรัชญา Charityware ไว้ และองค์กรรับการสนับสนุนได้ย้ายไปเป็น Kuwasha
การปรับปรุงฟีเจอร์หลัก
- เสริมความสามารถการเติมคำอัตโนมัติ
- รองรับ fuzzy matching ในโหมดแทรก และสามารถเติมคำได้โดยตรงจาก รีจิสเตอร์ (
CTRL-X CTRL-R)
- มีการเพิ่มตัวเลือก
nosort, nearest ให้กับ 'completeopt' เพื่อควบคุมวิธีจัดเรียงผลลัพธ์ได้ละเอียดขึ้น
- การปรับปรุงแพลตฟอร์มและ UI
- รองรับ Wayland UI และคลิปบอร์ด อย่างสมบูรณ์
- บนระบบตระกูล Linux/Unix ปฏิบัติตาม XDG Base Directory Specification โดยใช้
$HOME/.config/vim เป็นเส้นทางการตั้งค่า
- เพิ่ม แผงแท็บแนวตั้ง และ Windows GUI รองรับ โหมดมืด ของแถบเมนูและแถบชื่อหน้าต่าง รวมถึง ไอคอนความละเอียดสูง
- เพิ่มฟีเจอร์ช่วยการเรียนรู้
- เพิ่ม ปลั๊กอินติวเตอร์แบบอินเทอร์แอ็กทีฟ ใหม่ที่เรียกใช้งานด้วยคำสั่ง
:Tutor มอบประสบการณ์การเรียนรู้ที่ทันสมัยกว่า vimtutor เดิม
การขยายภาษา Vim9 Script
- เสริมโครงสร้างภาษา
- รองรับ Enum, Generic functions, และ Tuple data type ใหม่
- ฟังก์ชันในตัวถูกผนวกเป็น เมธอดของอ็อบเจ็กต์ และคลาสรองรับ เมธอด
_new() แบบ protected รวมถึงการคอมไพล์เมธอดเต็มรูปแบบผ่าน :defcompile
- การผสานรวมกับเครื่องมือ AI
- มีการเผยแพร่โปรเจ็กต์ตัวอย่าง 2 ตัวที่ใช้ GitHub Copilot
- Battleship in Vim9: การสร้างเกมคลาสสิกด้วยคลาส
- Number Puzzle: พัซเซิลตรรกะแบบอินเทอร์แอ็กทีฟในรูปแบบปลั๊กอิน
การปรับปรุงโหมด Diff
- อัลกอริทึม Linematch
- ถูกเพิ่มใหม่ในค่าตั้ง
'diffopt' เพื่อจัดแนวการเปลี่ยนแปลงระหว่างบรรทัดที่คล้ายกัน และ เพิ่มความแม่นยำของการไฮไลต์
- Diff Anchors
- ใช้ตัวเลือก
'diffanchors' เพื่อกำหนด จุดยึด สำหรับจัดแนว diff แบบเป็นช่วงในไฟล์ที่ซับซ้อน
- Inline Highlighting
- แสดงการเปลี่ยนแปลงภายในบรรทัดอย่างละเอียด และควบคุมได้ด้วยตัวเลือกย่อย
"inline"
"inline:simple" ถูกรวมอยู่ในค่า 'diffopt' เริ่มต้น
การเปลี่ยนค่าดีฟอลต์
- มีการอัปเดต ค่าตั้งต้นหลายรายการ ให้เหมาะกับสภาพแวดล้อมสมัยใหม่
'history': 50 → 200
'backspace': ค่าว่าง → "indent,eol,start"
'diffopt': "internal,filler" → "internal,filler,closeoff,indent-heuristic,inline:char"
'fontsize' (GTK): 10pt → 12pt
'showcmd', 'ruler': เปลี่ยนเป็นเปิดใช้งานเป็นค่าดีฟอลต์
การปรับปรุงอื่น ๆ และการแก้บั๊ก
- มีการแก้ไข ช่องโหว่ความปลอดภัย, หน่วยความจำรั่ว, และปัญหาการแครช จำนวนมากหลังจาก Vim 9.1
การเปลี่ยนผ่านด้านงานการกุศล
- การยุบ ICCF Holland
- หลังการเสียชีวิตของผู้ก่อตั้ง Bram Moolenaar มูลนิธิไม่สามารถดำเนินต่อได้จึงยุบตัว
- เงินทุนที่เหลือถูกโอนไปเพื่อสนับสนุน โครงการ Kibaale
- ความร่วมมือกับ Kuwasha
- องค์กรจากแคนาดา Kuwasha รับช่วงโครงการในยูกันดาและสานต่อการสนับสนุน
- Charityware ยังคงดำเนินต่อไป
- Vim ยังคงเป็น Charityware เช่นเดิม และผู้ใช้สามารถบริจาคผ่าน Kuwasha ได้
คำขอบคุณและการแจกจ่าย
- ขอบคุณผู้มีส่วนร่วมทุกคนที่ช่วยด้วยแพตช์ การแปล รายงานบั๊ก เป็นต้น
- เวอร์ชันล่าสุดมีให้ดาวน์โหลดจาก หน้าดาวน์โหลด
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
รู้สึกดีใจที่เห็น Vim9 ยังพัฒนาต่อเนื่อง
แม้ว่าศูนย์กลางดูเหมือนจะย้ายไปทาง Neovim พอสมควรแล้ว แต่ระบบนิเวศของ Neovim เหมือนจะโฟกัสไปที่คนที่ต้องการสภาพแวดล้อมแบบ IDE
สิ่งที่สงสัยคือจะมีนักพัฒนาปลั๊กอินย้ายไปใช้ Vim9Script มากขึ้นไหม เพราะผู้ใช้ Neovim ส่วนใหญ่ย้ายไปใช้ปลั๊กอินบนฐาน Lua กันแล้ว เลยดูเหมือนแรงจูงใจในการรองรับทั้งสองฝั่งจะลดลง
โดยเฉพาะดีใจมากที่มีการเพิ่ม การรองรับ tuple
ทั้ง Elisp และ Vimscript ทำให้ฉันอึดอัดเกินไป
แต่ถ้าเลือกได้ก็คงอยากได้ภาษาอื่นที่ไม่ใช่ Lua
น่าประทับใจที่ Vim ดำเนินมาในรูปแบบ Charityware มากว่า 30 ปี
หลังจาก Bram Moolenaar เสียชีวิต มูลนิธิ ICCF Holland ก็ถูกยุบ แต่เงินทุนที่เหลือถูกโอนไปเพื่อสนับสนุนโครงการ Kibaale ในยูกันดาต่อ
ฉันเลือก vim ด้วยเหตุผลทางเทคนิค แต่พอรู้ว่า Bram ทำ งานบริจาค แบบนี้ด้วยความตั้งใจดี ก็ยิ่งรู้สึกชื่นชมมากขึ้น
สุดท้ายเรื่องที่มันมีมากับลินุกซ์ดิสโทรอยู่แล้วก็ถูกปล่อยผ่านไปเงียบๆ
แต่ฉันสนับสนุนเจตนาของ Bram เต็มที่
ฉันเป็น แฟน vim แต่สุดท้ายก็ย้ายไป nvim
พูดตรงๆ คือหวังว่าผู้ดูแล vim จะหาวิธีรวมกับ nvim ได้ somehow
มันทำงานเหมือนกันทุกที่ทั้งบนเครื่องโลคัล, Raspberry Pi และ Ubuntu 20.04 VM
แก่นของ Vim คือความเรียบง่ายและความสม่ำเสมอ ถ้าต้องการฟีเจอร์มากกว่านี้ ฉันว่าก็ไปใช้ vscode พร้อมส่วนขยาย vim จะดีกว่า
ฉันเคยลอง nvim มาก่อนแต่ไม่รู้สึกว่ามีข้อดีมาก และเลิกใช้เพราะคำสั่ง
:shทำงานต่างออกไปส่วนตัวฉันชอบทิศทางของ vim9
พูดตรงๆ คือฉันไม่ชอบ Lua และการที่โครงสร้างพื้นฐานทุกอย่างค่อยๆ กลายเป็น Lua ก็แทบเลี่ยงไม่ได้
โชคดีที่รองรับ XDG แล้ว
init.nvimอ่าน~/.vimrcก็ไม่มีปัญหาถึงขั้นมีมุกว่า “ฟีเจอร์ AI อยู่ไหน?” เลย ทำให้รีลีสนี้ให้ความรู้สึกสดใหม่ในฐานะ อัปเดตใหญ่ที่ไม่มี AI
นั่นก็เป็นเหตุผลที่ฉันเคยย้ายไป Sublime Text และตอนนี้ก็เป็นฟีเจอร์จำเป็นใน VSCode กับ Zed ที่ใช้อยู่
ถึงจะมีปลั๊กอิน แต่ถ้ารองรับในตัวก็น่าจะทรงพลังกว่ามาก
เมื่อก่อน Bram Moolenaar เคยมีช่วงที่ปฏิเสธการอัปเดต vim จนกระทั่งก่อน Neovim จะออกมา
ฉันรู้สึกแปลกที่ไม่มีแท็ก v9.2 ใน รายการแท็กบน GitHub
หลังจากสนใจมานาน ในที่สุดฉันก็เริ่มเรียน vim แบบจริงจังเสียที
ต้องขอบคุณ AI ที่ทำให้มีเวลาว่างระหว่างคำขอจนพอจะเรียนได้ และการขอให้ IDE หรือ AI แก้ไขอะไรเล็กๆ น้อยๆ กลับรู้สึกช้ากว่า
ด้วย เวิร์กโฟลว์แบบ agentic ทำให้ฉันแก้รายละเอียดและทำงานซ้ำๆ ได้เร็วขึ้นมาก
เมื่อก่อนฉันเป็นคนเผยแพร่ vim เลย แต่ตอนนี้แก้บั๊กส่วนใหญ่ด้วย คำสั่งเสียงและการแก้ไขด้วย AI
ถึงอย่างนั้นฉันก็ยังรักปรัชญาของ vim อยู่ดี
ดีใจจริงๆ ที่ได้ยินข่าวว่า vim ยังพัฒนาต่อไป
GUI บน Windows ตอนนี้รองรับ โหมดมืด พร้อมโหมดเต็มจอที่ดีขึ้นและไอคอนความละเอียดสูงแล้ว
ขอแสดงความยินดีกับรีลีสใหม่นี้ และตั้งตารอวันที่จะได้ลองใช้การปรับปรุงเจ๋งๆ เหล่านี้