5 คะแนน โดย GN⁺ 2026-02-15 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • การอัปเดตครั้งใหญ่ที่มาพร้อมกับ การปรับปรุงภาษาสคริปต์ 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 ความคิดเห็น

 
GN⁺ 2026-02-15
ความคิดเห็นจาก Hacker News
  • รู้สึกดีใจที่เห็น Vim9 ยังพัฒนาต่อเนื่อง
    แม้ว่าศูนย์กลางดูเหมือนจะย้ายไปทาง Neovim พอสมควรแล้ว แต่ระบบนิเวศของ Neovim เหมือนจะโฟกัสไปที่คนที่ต้องการสภาพแวดล้อมแบบ IDE
    สิ่งที่สงสัยคือจะมีนักพัฒนาปลั๊กอินย้ายไปใช้ Vim9Script มากขึ้นไหม เพราะผู้ใช้ Neovim ส่วนใหญ่ย้ายไปใช้ปลั๊กอินบนฐาน Lua กันแล้ว เลยดูเหมือนแรงจูงใจในการรองรับทั้งสองฝั่งจะลดลง

    • ฉันชอบ vim9script มากจริงๆ เลยเขียนปลั๊กอินส่วนใหญ่ด้วยมัน ยกเว้นกรณีที่ต้องให้รันได้บน vim อื่นด้วย
      โดยเฉพาะดีใจมากที่มีการเพิ่ม การรองรับ tuple
    • ฉันไม่ได้ปล่อยปลั๊กอิน แต่การที่ Neovim รองรับ Lua เป็นเหตุผลหลักที่ย้ายมาจาก Emacs
      ทั้ง Elisp และ Vimscript ทำให้ฉันอึดอัดเกินไป
      แต่ถ้าเลือกได้ก็คงอยากได้ภาษาอื่นที่ไม่ใช่ Lua
  • น่าประทับใจที่ Vim ดำเนินมาในรูปแบบ Charityware มากว่า 30 ปี
    หลังจาก Bram Moolenaar เสียชีวิต มูลนิธิ ICCF Holland ก็ถูกยุบ แต่เงินทุนที่เหลือถูกโอนไปเพื่อสนับสนุนโครงการ Kibaale ในยูกันดาต่อ
    ฉันเลือก vim ด้วยเหตุผลทางเทคนิค แต่พอรู้ว่า Bram ทำ งานบริจาค แบบนี้ด้วยความตั้งใจดี ก็ยิ่งรู้สึกชื่นชมมากขึ้น

    • ตอนเคยทำงานที่บริษัทใหญ่ ฉันพยายามขออนุมัติใช้ vim ภายในองค์กร แต่ฝ่ายกฎหมายถกเถียงกันอยู่นานเรื่องข้อกำหนด charityware นี้ทำให้มีภาระต้องบริจาคหรือไม่
      สุดท้ายเรื่องที่มันมีมากับลินุกซ์ดิสโทรอยู่แล้วก็ถูกปล่อยผ่านไปเงียบๆ
      แต่ฉันสนับสนุนเจตนาของ Bram เต็มที่
    • สงสัยว่าถ้าคนบริจาคให้ vim เงินนั้นจะถูกส่งต่อไปยังองค์กรช่วยเหลือเด็กในยูกันดาจริงไหม
  • ฉันเป็น แฟน vim แต่สุดท้ายก็ย้ายไป nvim
    พูดตรงๆ คือหวังว่าผู้ดูแล vim จะหาวิธีรวมกับ nvim ได้ somehow

    • ฉันคิดว่าการไม่เพิ่มฟีเจอร์ใหม่บ่อยๆ และรักษา เสถียรภาพ ไว้ก็มีคุณค่าเหมือนกัน
      มันทำงานเหมือนกันทุกที่ทั้งบนเครื่องโลคัล, Raspberry Pi และ Ubuntu 20.04 VM
      แก่นของ Vim คือความเรียบง่ายและความสม่ำเสมอ ถ้าต้องการฟีเจอร์มากกว่านี้ ฉันว่าก็ไปใช้ vscode พร้อมส่วนขยาย vim จะดีกว่า
      ฉันเคยลอง nvim มาก่อนแต่ไม่รู้สึกว่ามีข้อดีมาก และเลิกใช้เพราะคำสั่ง :sh ทำงานต่างออกไป
    • สองโปรเจกต์นี้ต่างกันที่ โครงสร้างแกนหลัก ไปแล้ว เพราะงั้นคงรวมกันไม่ได้
      ส่วนตัวฉันชอบทิศทางของ vim9
    • ฉันก็ย้ายไป nvim เหมือนกัน แต่ทุกครั้งที่มีรีลีสก็คิดว่าจะกลับไปดีไหม
      พูดตรงๆ คือฉันไม่ชอบ Lua และการที่โครงสร้างพื้นฐานทุกอย่างค่อยๆ กลายเป็น Lua ก็แทบเลี่ยงไม่ได้
      โชคดีที่รองรับ XDG แล้ว
    • ฉันใช้ทั้ง vim และ nvim ควบคู่กัน แค่ให้ init.nvim อ่าน ~/.vimrc ก็ไม่มีปัญหา
    • แต่ก็สงสัยว่า nvim ตอนนี้มี มาตรฐาน UI ที่ชัดเจนแล้วหรือยัง
  • ถึงขั้นมีมุกว่า “ฟีเจอร์ AI อยู่ไหน?” เลย ทำให้รีลีสนี้ให้ความรู้สึกสดใหม่ในฐานะ อัปเดตใหญ่ที่ไม่มี AI

    • vim ไม่จำเป็นต้องมี AI แต่ถ้ามี มัลติเคอร์เซอร์ คงดีมากจริงๆ
      นั่นก็เป็นเหตุผลที่ฉันเคยย้ายไป Sublime Text และตอนนี้ก็เป็นฟีเจอร์จำเป็นใน VSCode กับ Zed ที่ใช้อยู่
      ถึงจะมีปลั๊กอิน แต่ถ้ารองรับในตัวก็น่าจะทรงพลังกว่ามาก
    • vim มี AI มากพออยู่แล้ว — นั่นคือ มือและสมองของผู้ใช้
    • ฉันคิดว่า vim นี่แหละเป็นเครื่องมือที่เหมาะกับ agentic coding ที่สุด
    • ฉันก็สงสัยเหมือนกัน ทุกวันนี้คนใช้ AI ใน vim กันยังไง? ฉันเคยเห็นสคริปต์ ollama แต่ก็อยากรู้กรณีการใช้งานทั่วไป
    • เพิ่มเติมคือ vim ก็เข้ากันได้ดีกับ ปลั๊กอิน AI เช่นกัน
  • เมื่อก่อน Bram Moolenaar เคยมีช่วงที่ปฏิเสธการอัปเดต vim จนกระทั่งก่อน Neovim จะออกมา

    • ตอนนี้เขาเสียชีวิตไปแล้ว ฉันคิดว่าไม่จำเป็นต้องหยิบเรื่องนั้นมาพูดอีก
  • ฉันรู้สึกแปลกที่ไม่มีแท็ก v9.2 ใน รายการแท็กบน GitHub

    • ตอนนี้มีการเพิ่มแท็ก v9.2.0 และ v9.2.0000 แล้ว
    • คอมมิตที่เกี่ยวข้องคือลิงก์นี้ ตอนที่เขียนความเห็นนั้นยังไม่ได้ติดแท็ก
  • หลังจากสนใจมานาน ในที่สุดฉันก็เริ่มเรียน vim แบบจริงจังเสียที
    ต้องขอบคุณ AI ที่ทำให้มีเวลาว่างระหว่างคำขอจนพอจะเรียนได้ และการขอให้ IDE หรือ AI แก้ไขอะไรเล็กๆ น้อยๆ กลับรู้สึกช้ากว่า
    ด้วย เวิร์กโฟลว์แบบ agentic ทำให้ฉันแก้รายละเอียดและทำงานซ้ำๆ ได้เร็วขึ้นมาก

    • แต่สำหรับฉัน AI กลับทำให้ไม่จำเป็นต้องใช้ vim แล้ว
      เมื่อก่อนฉันเป็นคนเผยแพร่ vim เลย แต่ตอนนี้แก้บั๊กส่วนใหญ่ด้วย คำสั่งเสียงและการแก้ไขด้วย AI
      ถึงอย่างนั้นฉันก็ยังรักปรัชญาของ vim อยู่ดี
  • ดีใจจริงๆ ที่ได้ยินข่าวว่า vim ยังพัฒนาต่อไป

  • GUI บน Windows ตอนนี้รองรับ โหมดมืด พร้อมโหมดเต็มจอที่ดีขึ้นและไอคอนความละเอียดสูงแล้ว
    ขอแสดงความยินดีกับรีลีสใหม่นี้ และตั้งตารอวันที่จะได้ลองใช้การปรับปรุงเจ๋งๆ เหล่านี้

    • โดยเฉพาะสำหรับคนที่ฝ่าย IT บล็อกการเข้าถึง Notepad++ นี่คืออัปเดตที่มาได้ ตรงเวลาสมบูรณ์แบบ จริงๆ