Tag Archives: VIM

แนะนำ Janus ชุด plug-in สำหรับ vim

ช่วงนี้ที่บริษัท pair กันน้อยลง จากที่เคยใช้ RubyMine เป็น IDE หลัก ก็ได้กลับมาใช้ VIM อีกครั้ง จริงๆ ก็ติดใจ RubyMine อยู่เพราะมันมีฟีเจอร์อะไรหลายๆ อย่างที่คิดว่าถ้าเป็น text editor ทั่วไป ที่ไม่ได้ทำมาสำหรับรองรับ Ruby และ Rails โดยตรง ไม่น่าจะทำได้ แล้วก็รู้สึกว่าไม่หน่วงๆ เหมือน Eclipse ด้วย แต่ด้วยความที่ช่วงนี้ iMac แรมหมดแล้วอืดบ่อยๆ (แต่ก็พบว่าเปลี่ยนไปใช้ VIM ก็ไม่ช่วย) และนั่งดู screencast DestroyAllSoftware เห็นคนทำมันใช้ VIM แล้วเท่ดี เลยอยากกลับมาใช้ VIM อีกครั้ง พอกลับมาใช้ VIM และได้ศึกษาเจ้าชุด plug-in สำเร็จที่ชื่อว่า janus (ที่ลงไว้นานแล้ว รู้จักมาจากไหนก็ไม่รู้) จริงๆ จังๆ ก็รู้สึกว่ามันทำได้เกือบทุกฟีเจอร์ที่ใช้ใน RubyMine เลย

ข้อดีของ janus

  • ติดตั้งโคตรง่าย แค่รันคำสั่ง $ curl -Lo- https://bit.ly/janus-bootstrap | bash แล้วก็รอไป เสร็จแล้วก็พร้อมใช้เลย
  • มันรวม plug-in ที่ต้องใช้เอาไว้เกือบหมดแล้ว ตอนนี้ต้องลงเพิ่มอีกแค่ 2 อัน แถมเวลาจะอัพเดต plug-in ก็แค่รันคำสั่ง rake อย่างเดียวจบ
  • Customize ง่าย เพิ่ม vimrc จากที่มันกำหนดมาให้ ลงใน vimrc.before และ vimrc.after และลง plug-in เพิ่มก็แค่โหลด plug-in ที่ต้องการไปวางไว้ใน folder ~/.janus จะ disable plugin ไหนก็ทำได้

ทั้งหมดนี้ทำให้เวลาในการตระเตรียมและดูแลรักษาน้อยมาก มีเวลาเอาไปหัดพวกคำสั่งของ plug-in แทน ซึ่ง plug-in ที่ผมใช้บ่อยๆ ก็มีดังนี้

  • Rails ซึ่งทำทุกอย่าง ตั้งแต่ช่วยเปิดไฟล์ง่ายๆ, สลับระหว่าง test และ production code เร็วๆ, รัน test, browse code จาก class name, …
  • snipmate อันนี้จริงๆ ยังจำได้ไม่เยอะเท่าไหร่ ที่ใช้บ่อยๆ ตอนนี้ก็เอาไว้ เขียน print เร็วๆ
  • Ack คล้ายพวก find ทั้ง project
  • Ctrl-P เปิดไฟล์ตามที่เราพิมพ์ ฟีเจอร์หลักของ text editor ยุคปัจจุบัน (แต่มันไม่ฉลาดเท่าของ RubyMine)
  • Git ใช้พวก blame ก็สะดวกดี
  • NERDTree เอาไว้เวลาจำชื่อไฟล์ไม่ได้

กลับมาใช้ VIM รอบนี้ ก็รู้หลักสำคัญอีกอย่าง ที่ต้องปรับตัว คือ เปลี่ยนจากการใช้ tab ที่ติดมาจาก editor อื่นๆ มาใช้ buffer แทน ซึ่งพอเปลี่ยนมาใช้ buffer แล้วก็รู้สึกว่าเป็นธรรมชาติขึ้นเยอะ ไม่เหมือนตอนใช้ tab ที่มีอะไรแปลกๆ เช่น NERDTree แสดงอยู่บนแค่ tab เดียว

ใครใช้ VIM อยู่ก็ลองแวะไปดูเจ้า janus นี้หน่อยละกันนะครับ สะดวกดี ผมเชื่อว่าอีกหลายเจ้าที่ทำชุดรวม plug-in แบบนี้ เล่นอะไร เป็นยังไง ก็มาเล่าสู่กันฟังด้วยละกันครับ