43 คะแนน โดย kodingwarrior 2023-08-11 | 11 ความคิดเห็น | แชร์ทาง WhatsApp

วิดีโอบันทึก : https://www.youtube.com/watch?v=XYQnyJVGk-4&t=1s
ภาคผนวก : https://kodingwarrior.github.io/wiki/appendix/excelcon-2nd/

เมื่อวันที่ 2023-06-03 ในงาน ExcelCon ครั้งที่ 2 ผมเคยบรรยายในหัวข้อ "ก้าวกระโดดด้านผลิตภาพด้วย Neovim" และแม้จะช้าไปบ้าง ก็ขอนำมาแชร์ที่นี่ด้วยครับ


สรุปเนื้อหาการบรรยาย

แค่ใช้ Neovim แล้วผลิตภาพเพิ่มขึ้นได้อย่างไร?

โฆษณา
  • เดิมต้องสลับใช้ VSCode, Notion, RoamResearch, GitKraken ฯลฯ ไปมา แต่เมื่อรวมทุกอย่างมาไว้ใน Neovim ก็ช่วยลดภาระทางการรับรู้ที่ไม่จำเป็นลง
  • แม้จะสลับใช้งานทั้ง macOS และ archilinux ก็ยังคงรักษาสภาพแวดล้อมการพัฒนาให้สม่ำเสมอได้ทุกที่ (dotfiles)
  • ไม่ต้องกังวลเรื่องประสิทธิภาพของอุปกรณ์อีกต่อไป
    • Before : ต้องเปิดหลายแอปอย่าง AndroidStudio, VSCode, RoamResearch ฯลฯ พร้อมกันเพื่อทำงาน ทำให้เกิด thrashing บ่อยมาก แม้แต่การพิมพ์ซอร์สโค้ดยังใช้เวลานาน / After : ไม่ได้ยินแม้แต่เสียงเครื่องเหมือนเครื่องบินจะทะยานขึ้น การใช้หน่วยความจำก็ต่ำมากด้วย

3 ขั้นตอนในการเพิ่มผลิตภาพ

  1. การปรับปรุงผลิตภาพควรเริ่มจาก การตระหนักรู้เชิงอภิปัญญาเพื่อวิเคราะห์ว่าตนเองเสียเวลาไปกับพฤติกรรมใดโดยไม่จำเป็น
  2. เริ่มจากทำความคุ้นเคยกับเครื่องมือที่ตนเองใช้อยู่ก่อน
  3. สำรวจว่าตนเองทำงานใดซ้ำ ๆ บ้าง และมองหาวิธีใช้งานที่จะช่วยลดเวลาที่ใช้กับงานซ้ำเหล่านั้น (เช่น เทมเพลต, ปลั๊กอิน, มาโคร, สนิปเพ็ต, …)
  4. จากกระบวนการในข้อ 2 ให้เลือกสิ่งที่เหมาะกับตนเองแล้วฝึกจนเป็นธรรมชาติ
โฆษณา

เนื้อหาที่อธิบายไม่หมดเพราะข้อจำกัดด้านความยาว ผมได้สรุปเพิ่มเติมไว้เป็นภาคผนวกในบล็อก

  • ชุดเริ่มต้นสำหรับผู้เริ่มต้น Neovim เช่น AstroNvim, LazyNvim
  • ปลั๊กอิน tree-sitter สำหรับ neovim โดยเฉพาะ
  • nvim-cmp ที่มอบความสามารถในการเติมโค้ดอัตโนมัติ

นอกจากนี้ยังมีการดูแลชุมชน Discord (vim.kr) สำหรับผู้ที่อยากใช้งาน Vim ให้เก่งขึ้นด้วย ฝากติดตามกันเยอะ ๆ นะครับ :)

11 ความคิดเห็น

 
kan02134 2023-08-15

https://github.com/github/copilot.vim

ผมใช้ VS Code Copilot ได้คุ้มมากอยู่แล้ว พอลองค้นดูก็พบว่ามี Neovim Copilot Plugin เหมือนกันนะครับ เคยลังเลว่าจะลองดีไหม แต่คงต้องลองใช้ Neovim ดูสักครั้งแล้วครับ

 
edunga1 2023-08-14

ที่บริษัทแรกที่ผมย้ายงานไป เขาพัฒนางานกันโดยรีโมตเข้าไปบนเซิร์ฟเวอร์ลินุกซ์ที่ใช้ vim + tmux ครับ
ผมประทับใจมากที่ในสภาพแวดล้อมนี้สามารถทำรีโมตแพร์โปรแกรมมิงได้ด้วย (แก้โค้ดแล้วสะท้อนผลทันที และยังแชร์เทอร์มินัลกันได้)

ผมเริ่มเข้าวงการ vim แบบจริงจังก็เพราะ dotfiles บนรีโมตเซิร์ฟเวอร์อย่าง .vimrc, .bashrc นี่แหละครับ
จำได้ว่าตอนนั้นมีตัวอย่างให้เลย เลยเริ่มต้นได้แบบสบายใจ ก็เลยรู้สึกเห็นด้วยกับที่บทความพูดถึงเรื่อง dotfile ครับ 555

 
yoehwan 2023-08-14

ผมเองก็ย้ายจาก NVIm ไป VSCode เหมือนกัน แต่พอได้อ่านโพสต์นี้แล้วก็อยากย้ายกลับไปอีกนะครับ 555

 
junghan0611 2023-08-14

ดีใจมากที่ได้เห็นเรื่องราวเกี่ยวกับโปรแกรมแก้ไขข้อความ ท้ายที่สุดแล้ว ถ้ายอมรับว่างานทั้งหมดล้วนเป็นการจัดการกับข้อความ การใส่ใจกับสภาพแวดล้อมการทำงานกับข้อความของตัวเองก็ไม่ใช่เรื่องน่าหนักใจเลย ผมเริ่มใช้ Emacs ตั้งแต่ปีที่แล้ว และมันทำให้ผมทำทุกอย่างได้ด้วยคีย์บอร์ดจริง ๆ อย่างที่พูดไว้ในข้อ 0 มันช่วยลดเวลาที่ไม่จำเป็นลงได้มากเลย ขอให้ vim.kr ยิ่งรุ่งเรือง!!

 
roxie 2023-08-12

ขอถามเพื่อความแน่ใจว่าเป็นเพราะผมพลาดไปในวิดีโอหรือเปล่า ตอนที่บอกว่าแทนที่ Notion ด้วย neovim หมายถึงสร้างระบบ wiki ใน neovim แล้วใช้งานสิ่งนั้น หรือหมายถึงมีไลบรารีที่ใช้ควบคุม Notion จากใน neovim ครับ เจตนาของคำถามคือ อยากทราบว่า Notion ที่ใช้ในบริษัทก็สามารถควบคุมจากใน neovim ได้หรือไม่

 
kodingwarrior 2023-08-12

แน่นอนว่าผมไม่ได้ไปควบคุม Notion อะไรแบบนั้นครับ

ถ้า Notion รองรับ API ก็ในทางทฤษฎีอาจจะควบคุมจาก neovim ได้ แต่จนถึงตอนนี้ผมยังไม่เคยเห็นความพยายามแบบนั้นครับ.

ส่วน Notion ที่ใช้ในบริษัทจะสามารถควบคุมจาก neovim ได้หรือไม่นั้น น่าจะมีประเด็นด้านนโยบายอยู่ด้วย เลยตอบยืนยันได้ยากครับ.

 
roxie 2023-08-12

แม้ว่า Notion จะมี API ให้ใช้งาน แต่ในทางปฏิบัติกลับมีข้อจำกัดหลายอย่างที่นึกขึ้นมาได้ เลยอยู่ในสภาพที่การพัฒนาหยุดชะงักอยู่ ผมเลยสงสัยว่ามีโซลูชันดี ๆ ไหม ขอบคุณสำหรับคำตอบครับ :D

 
kodingwarrior 2023-08-12

ใกล้เคียงกับการสร้างระบบ wiki มากกว่าครับ มีปลั๊กอินชื่อ telekasten.nvim ที่ตอบโจทย์ความต้องการของผมได้เกิน 100% และมีฟังก์ชันแทบทุกอย่างที่ต้องการอยู่แล้ว

ฟังก์ชันเทมเพลตก็ทำได้ดีพอสมควร รวมถึงฟังก์ชันจัดการเอกสารภายในก็ใช้ได้ดีครับ

อีกหนึ่งฟังก์ชันที่ผมชอบเป็นการส่วนตัวคือการแสดงผลกราฟ ซึ่งผมลงมือทำเองด้วยไลบรารีชื่อ force-graph

คิดว่าน่าจะพอเป็นข้อมูลอ้างอิงได้ เลยขอแปะลิงก์ซอร์สโค้ดที่เกี่ยวข้องไว้ด้วยครับ

https://github.com/kodingwarrior/kodingwarrior.github.io/… -- สร้างข้อมูลจุดยอด (เอกสาร) / เส้นเชื่อม (ลิงก์ภายใน) ที่จำเป็นสำหรับการแสดงผลกราฟ
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- การแสดงผลบนพื้นฐานของ force-graph

 
bbulbum 2023-08-11

ผมก็ใช้ neovim เหมือนกัน และได้เจอโลกใหม่เลยครับ เลยพยายามชวนให้นักพัฒนารอบตัวลองใช้ดู แต่ไม่มีใครย้ายตามมาเลย ระหว่างที่ใช้ neovim ผมก็ได้เข้าใจสิ่งที่จำเป็นสำหรับการสร้างสภาพแวดล้อมในการพัฒนามากขึ้นด้วย ไม่รู้มาก่อนเลยว่ามีคอมมูนิตี้ Vim ของเกาหลีด้วย เดี๋ยวจะลองเข้าไปดูครับ ดีใจมากจริง ๆ!

 
aqqnucs 2023-08-13

แล้วแต่บริษัท แล้วแต่ทีม... แต่ก็น่าแปลกที่มีหลายคนไม่ได้สนใจการตั้งค่าสภาพแวดล้อมการพัฒนามากนัก..

 
bus710 2023-08-11

ถ้าจะใช้ Vim ให้เก่ง ดูเหมือนว่าสุดท้ายก็ต้องใช้ zsh กับ tmux ไปด้วยกันอยู่ดี
ต่างจาก Emacs ตรงที่โชคดีที่ไม่จำเป็นต้องไว้เครา