Development Environment ตอนจบ

GVim ที่ปรับแต่งแล้ว กับ gitg
       อย่างที่ผมได้พูดไว้ในตอนที่ 1 นะครับว่า Thinkpad ผมที่ลง Windows 8.1 ไว้ประสบปัญหาบางอย่างจนทำให้ผมต้องกลับมาใช้ Linux จริงๆ แล้วก่อนที่ผมจะย้ายกลับมาใช้ Linux เต็มตัวนั้นมีความเปลี่ยนแปลงใน windows stack นิดนึงคือ ผมกลับมาใช้ VIM ครับ เนื่องด้วยเหตุผลหลักเลยคือ PHPStorm มันไม่ทันใจเวลาไอเดียดีๆ มันโผล่มา กว่าจะรอมันโหลดขึ้นมาไอเดียก็ลอยไปแล้ว เพราะฉะนั้นแล้วเนี่ย Vim ก็เลยตอบสนองโจทย์ข้อนี้ได้เป็นอย่างดี

       แต่ลำพังตัว Vim อย่างเดียวความเร็วส์ มันยังสูงไม่พอครับ โชคดีที่ Vim นั้นมีความสามารถในการปรับแต่งสูงมาก (อาจจะไม่มาก แต่ก็เยอะจริงๆ) โดยปลั๊กอินที่ผมใช้หลักๆ ใน Vim ก็ตามนี้ครับ

  • Vundle อันนี้จำเป็นมากครับ เป็นตัวคอยจัดการ plugin ของ vim เหมือน bundle ใน rails
  • kien/ctrlp.vim ใช้กระโดดหาไฟล์ที่ต้องการใน directory
  • vim-easymotion ใช้กระโดดหาตัวอักษรที่ต้องการในไฟล์
  • ervandew/supertab ทำให้กด Tab เป็น auto-completion ได้
  • Raimondi/delimitMate ปิดวงเล็บทุกรูปแบบอัตโนมัติ
  • mihaifm/vimpanel เป็น files browser ที่เร็วส์และปรับแต่งได้ดีมาก (เร็วกว่า NERDTree แน่ๆ)
  • altercation/vim-colors-solarized เป็นชุดสีที่ผมใช้เป็นหลักครับ ข้อดีคือมันปรับแต่งเพิ่มได้ด้วย
  • tpope/vim-fugitive ทำให้ vim ทำงานร่วมกับ git ได้ดีขึ้น
  • Lokaltog/vim-powerline ใช้แทน status line มาตรฐานของ Vim เรียกได้ว่าคนใช้ vim มีแทบทุกคน
       นอกจากนั้นยังมีการปรับแต่งเพิ่มเติมในอีกหลายๆ ส่วนเช่น การ map key ใหม่ทำให้ใช้บางปุ่มแทนการทำงานบางอย่างได้เช่น ผมใช้ v ที่ปกติเป็นการเข้า visual mode ซึ่งผมแทบไม่เคยใช้เลยปรับให้เป็นเปิด vimpanel แทน หรือ ตั้งให้ vim มันเซฟไฟล์อัตโนมัติเมื่อไม่ได้อยู่ในหน้าโปรแกรม (ซึ่งผมติดมาจาก phpstorm ที่ไม่ต้องเซฟไฟล์ก็ดีบักได้เลย) รายละเอียดอื่นๆ สามารถไปดูได้ในไฟล์ .vimrc ผมตามลิงค์นี้ครับ https://github.com/yothinix/vimrc

       ในส่วนของ Git เมื่อหลายสัปดาห์ก่อนผมมีโอกาสบรรยายเรื่อง git ให้น้องๆ ในชุมนุมฟังแล้วมีคำถามขึ้นมาว่าใน linux มี gui client ที่ใกล้เคียงกับ sourcetree ใน windows มั้ย ในเวลานั้นผมยังไม่รู้ครับ เพราะผมยังอยู่บน windows เป็นหลักแต่พอย้ายมา linux ต้องยอมรับว่า GUI ดีๆ นั้นหายากมากและผมลองมาเกือบทุกตัว จนเกือบถอดใจไปใช้ git command แล้วจนกระทั่งมาเจอกับ gitg ซึ่งหน้าตาอาจจะไม่ไฮโซเท่า sourcetree แต่ก็ทำงานแทนได้ระดับนึง แต่ผมก็ต้องปรับกระบวนการทำงานตามไปด้วยเพราะ gitg ไม่ซัพพอร์ต git workflow แต่เนื่องจากตัวโปรเจ็คใช้ git workflow มาตลอดอยู่แล้ว เพราะฉะนั้นที่เหลือก็แค่ทำมือ จึงไม่ค่อยเป็นปัญหามากเท่าไร

terminator
       นอกจาก Vim กับ gitg ที่ปรับตัวแล้วเครื่องมืออื่นๆ ก็แทบไม่ได้ปรับตัวตามเท่าไร teamviewer และ dropbox มีเวอร์ชั่น linux อยู่แล้ว เลยไม่มีปัญหาอะไรนอกจากเสียเวลา sync folder ใหม่แค่นั้น จริงๆ แล้วการย้ายมาใช้ linux นั้นข้อดีหลักๆ ที่เห็นได้ชัดเลยคือ ผมได้กลับมาใช้ terminal อีกครั้งซึ่งเร็วกว่าใช้ file browser แน่นอนเลยทำให้มีโอกาสหา terminal emulator ดีๆ แทน Terminal มาตรฐานซึ่งก็ทำให้ผมไปเจอกับ terminator ซึ่งหน้าตาอาจจะธรรมดาแต่ข้างในไม่ธรรมดานะครับ
       ปัญหาหลักที่ผมเจอกับ Fedora (ตอนใช้ Linux Mint ไม่เป็น) คือ library ของ mysql ใน fedora มันเปลี่ยนไปใช้ mariadb หมดแล้วทำให้ผมติดต่อกับ database ไม่ได้ครับวิธีแก้ชั่วคราวตอนนี้แทนที่จะลง Apache2, PHP, MySQL แยกผมเลยใช้ xampp for linux แทนซึ่งก็พอถูไถไปได้ระดับนึง แต่สิ่งหนึ่งที่ขาดไม่ได้ในชุดนี้คือ xdebug ครับซึ่งเป็น pecl ตัวนึงของ php ประโยชน์จริงๆ คือ มันช่วยให้การ debug โปรแกรมใน php มันดูง่ายขึ้นครับ วิธีการติดตั้งใน linux ก็ไม่ได้ยากอะไรเลย ถ้ามีโอกาสยากแนะนำให้ลองใช้แต่ถ้าบน windows มันจะ pre-load มากับตัว WAMP เลยครับ

       ก็ประมาณนี้นะครับสำหรับ Development Environment จริงๆ ไม่คิดเลยว่าจะเขียนมาจนถึง 3 ตอนได้ ก็อาจจะเป็นแนวทางไว้สำหรับคนที่คิดจะย้ายมา develop PHP บน linux stack นะครับ ถ้าใครมี tool หรือ plugin ดีๆ ก็มาคุยแลกเปลี่ยนกันได้ใน comment ครับ ผมจะยินดีมาก จบแล้วครับ แฮร่

Comments