มาทำให้ Fish Shell ของคุณสุดยอด! คู่มือเริ่มต้นปรับแต่งด้วย Fisher และ Oh My Fish 🐟
สวัสดีครับ! นักสร้างสรรค์เว็บทุกท่าน ในการทำงานพัฒนาเว็บในแต่ละวัน คุณได้ใช้เทอร์มินัล (หน้าจอสีดำนั่นแหละครับ!) กันบ้างไหมครับ
จริงๆ แล้ว การปรับแต่งเทอร์มินัลนี้ให้เป็นสไตล์ของตัวเอง จะช่วยเพิ่มประสิทธิภาพในการพัฒนาได้อย่างมาก และที่สำคัญที่สุดคือทำให้การทำงานสนุกยิ่งขึ้นครับ
ในครั้งนี้ เราจะมาอธิบายวิธีการปรับแต่ง Shell ที่ขึ้นชื่อว่าทันสมัยและใช้งานง่ายอย่าง "Fish" กันอย่างละเอียด โดยเฉพาะอย่างยิ่ง ถ้าใช้ตัวจัดการปลั๊กอินอย่าง "Fisher" และ "Oh My Fish" ก็จะสามารถเพิ่มธีมและฟังก์ชันอำนวยความสะดวกได้ง่ายๆ เหมือนกับการติดตั้งแอปพลิเคชันบนสมาร์ทโฟนเลยทีเดียว
วัตถุประสงค์ของบทความนี้คือ เพื่อให้มือใหม่ได้สัมผัสกับประสบการณ์ที่ "ใช้งานได้จริง" เพียงแค่คัดลอกและวางโค้ด เท่านั้น ไม่ต้องไปสนใจทฤษฎียากๆ! มาเริ่มจากการเปลี่ยนหน้าตา เพิ่มฟังก์ชันเจ๋งๆ แล้วมาสัมผัสความสนุกของการปรับแต่งกันเลยครับ
🚀 เริ่มต้นเตรียมความพร้อม: ตัวจัดการปลั๊กอินคืออะไร?
ก่อนที่จะเริ่มปรับแต่ง Fish เรามาทำความเข้าใจกันก่อนว่า "ตัวจัดการปลั๊กอิน" คืออะไร
มันคือเครื่องมือที่ช่วยให้เราสามารถเพิ่ม จัดการ และลบหน้าตา (ธีม) และฟังก์ชัน (ปลั๊กอิน) ของ Fish ได้อย่างง่ายดาย หากไม่มีเครื่องมือนี้ เราจะต้องดาวน์โหลดไฟล์มาเอง วางไว้ในตำแหน่งที่กำหนด แล้วก็ต้องไปแก้ไขไฟล์ตั้งค่า... ซึ่งเป็นงานที่ยุ่งยากมาก
แต่ถ้าใช้ตัวจัดการปลั๊กอิน เพียงแค่รันคำสั่งเดียว งานที่น่าเบื่อเหล่านั้นก็จะถูกจัดการให้โดยอัตโนมัติทั้งหมด ในครั้งนี้เราจะมาแนะนำ 2 ตัวที่ได้รับความนิยมเป็นพิเศษครับ
- Fisher: เรียบง่ายและรวดเร็ว จุดเด่นคือความสะดวกในการติดตั้งปลั๊กอินโดยตรงจาก GitHub repository
- Oh My Fish: มีธีมและปลั๊กอินมากมายรวบรวมอยู่ใน repository ทางการ ทำให้ค้นหาและติดตั้งได้ง่าย เป็นที่รู้จักในเรื่องความสะดวกแบบครบวงจร
ทั้งสองเป็นเครื่องมือที่ยอดเยี่ยม แต่ก็มีลักษณะเด่นที่แตกต่างกันไป ในบทความนี้เราจะอธิบายวิธีการใช้งานทั้งสองแบบ เพื่อให้คุณได้เลือกใช้ให้เหมาะสมกับตัวเองนะครับ
*บทความนี้ตั้งอยู่บนสมมติฐานว่าคุณได้ติดตั้ง Fish shell ไว้เรียบร้อยแล้ว หากยังไม่ได้ติดตั้ง สามารถติดตั้งได้อย่างง่ายดายผ่าน Homebrew (สำหรับ macOS) หรือตัวจัดการแพ็คเกจของ Linux distribution ที่คุณใช้อยู่
# กรณีใช้ macOS (Homebrew)
brew install fish
🎣 มาลองใช้ Fisher กัน! การปรับแต่งแบบเรียบง่ายคือที่สุด
มาเริ่มจาก Fisher ที่มีเสน่ห์ในความเรียบง่ายกันก่อนเลยครับ การตั้งค่าทั้งหมดจะถูกรวบรวมไว้ในไฟล์ `~/.config/fish/config.fish` ทำให้จัดการได้ง่าย
1. การติดตั้ง Fisher
การติดตั้งก็ง่ายๆ เพียงแค่นำคำสั่งด้านล่างไปวางในเทอร์มินัลแล้วรันได้เลย
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
2. เปลี่ยนหน้าตาด้วยการติดตั้งธีม
เมื่อเตรียม Fisher พร้อมแล้ว ก็มาเปลี่ยนหน้าตาเทอร์มินัลกันเลย ในที่นี้เราจะติดตั้งธีมที่เรียบง่ายและเป็นที่นิยมอย่าง "nospace"
fisher install jorgebucaran/nospace.fish
ทันทีที่รันคำสั่ง หน้าตาของ prompt (ส่วนที่เป็น `>` หรือ `$` ก่อนพิมพ์คำสั่ง) ก็จะเปลี่ยนไปทันที เพียงแค่ระบุ `ชื่อผู้ใช้/ชื่อ repository` ของ GitHub ต่อท้าย `fisher install` ก็สามารถเพิ่มธีมหรือปลั๊กอินได้อย่างง่ายดาย
นอกจากนี้ยังมีธีมอื่นๆ อีกมากมาย เช่น ลองมาติดตั้งธีมยอดนิยมที่แสดงข้อมูลได้เยอะอย่าง "bobthefish" กันดู
fisher install oh-my-fish/theme-bobthefish
ข้อควรระวัง: ธีมที่มีฟังก์ชันการทำงานสูงอย่าง bobthefish อาจจำเป็นต้องติดตั้งฟอนต์พิเศษอย่าง "Nerd Fonts" เพิ่มเติม หากการแสดงผลเพี้ยนไป ลองตรวจสอบการตั้งค่าฟอนต์ในโปรแกรมเทอร์มินัลของคุณดูนะครับ
3. เพิ่มฟังก์ชันด้วยปลั๊กอิน
หลังจากเปลี่ยนหน้าตาแล้ว ต่อไปก็มาเพิ่มฟังก์ชันอำนวยความสะดวกกันดีกว่าครับ ในที่นี้เราจะติดตั้งปลั๊กอิน "z" ที่ช่วยให้เราสามารถกระโดดกลับไปยังไดเรกทอรีที่เคยเข้าไปแล้วได้อย่างง่ายดาย
fisher install jethrokuan/z
หลังจากติดตั้งแล้ว ลองใช้คำสั่ง `cd` ย้ายไปตามไดเรกทอรีต่างๆ ดู จากนั้นลองพิมพ์ `z` ตามด้วยส่วนหนึ่งของชื่อไดเรกทอรีแล้วกดปุ่ม Tab มันจะช่วยเติมชื่อไดเรกทอรีจากประวัติให้เรา เช่น ถ้าเคยเข้าไปที่ `/var/www/html/my-project` มาก่อน แค่พิมพ์ `z my-p` แล้วกด Tab ก็สามารถย้ายไปได้เลย ซึ่งมีประสิทธิภาพมาก
4. ตรวจสอบและลบแพ็คเกจที่ติดตั้งไว้
หากต้องการตรวจสอบว่าตอนนี้ติดตั้งอะไรไปบ้าง ให้ใช้คำสั่ง `list`
fisher list
การลบธีมหรือปลั๊กอินที่ไม่ต้องการแล้วก็ทำได้ง่ายๆ เพียงระบุชื่อแพ็คเกจต่อท้าย `remove` เรามาลองลบ `bobthefish` ที่เพิ่งติดตั้งไปกัน
fisher remove oh-my-fish/theme-bobthefish
🐠 มาลองใช้ Oh My Fish กัน! ปรับแต่งสนุกๆ ด้วยตัวเลือกที่หลากหลาย
ต่อไป เรามาลองใช้ Oh My Fish (OMF) กันดูบ้างครับ OMF มีข้อดีอย่างมากตรงที่ธีมและปลั๊กอินจำนวนมากถูกรวบรวมเป็นแคตตาล็อกอย่างเป็นทางการ ทำให้มือใหม่ที่ไม่รู้จะเริ่มจากอะไรสามารถค้นหาได้ง่าย
[สำคัญ] ไม่แนะนำให้ใช้ Fisher และ Oh My Fish พร้อมกัน หากคุณลองใช้ Fisher แล้วอยากจะเปลี่ยนมาใช้ OMF แนะนำให้ลบปลั๊กอินของ Fisher ออกก่อน แล้วค่อยติดตั้ง OMF หรือลองใช้ในสภาพแวดล้อมอื่น
1. การติดตั้ง Oh My Fish
การติดตั้งก็เสร็จสิ้นได้ด้วยคำสั่งเดียวเช่นกัน
curl -L https://get.oh-my.fish | fish
เมื่อติดตั้งเสร็จเรียบร้อย ธีมเริ่มต้นของ OMF ก็จะถูกนำมาใช้งานทันที
2. ค้นหาและปรับใช้ธีม
จุดเด่นของ OMF คือสามารถค้นหาและลองใช้ธีมต่างๆ ได้อย่างง่ายดาย มาดูรายการธีมที่มีให้ใช้กันก่อนเลย
omf theme
จะมีชื่อธีมแสดงขึ้นมามากมาย หากต้องการใช้ธีมที่สนใจ ก็เพียงแค่ระบุชื่อธีมต่อท้าย `omf theme` ตัวอย่างเช่น ลองใช้ธีมยอดนิยมอย่าง `agnoster` กันดู
omf theme agnoster
เพียงเท่านี้ธีมก็จะถูกติดตั้งและนำมาใช้งานทันที ลองเปลี่ยนธีมไปเรื่อยๆ เพื่อหาธีมโปรดของคุณดูนะครับ
3. การติดตั้งปลั๊กอิน
การติดตั้งปลั๊กอินก็ทำได้ง่ายๆ เพียงระบุชื่อปลั๊กอินต่อท้าย `omf install` ในที่นี้เราจะติดตั้งปลั๊กอินที่มีประโยชน์มากอย่าง "fzf" ซึ่งช่วยให้เราสามารถค้นหาประวัติคำสั่งที่เคยใช้แบบโต้ตอบได้ด้วย `Ctrl+R` (จำเป็นต้องติดตั้ง `fzf` ตัวหลักไว้ก่อน)
omf install fzf
หลังจากติดตั้งแล้ว ลองกด `Ctrl+R` ในเทอร์มินัลดู จะมีรายการประวัติคำสั่งที่เคยใช้แสดงขึ้นมา และสามารถกรองการค้นหาได้ ซึ่งเป็นฟังก์ชันที่สะดวกมากจนถ้าได้ลองใช้แล้วจะขาดไม่ได้เลย
สามารถค้นหาแพ็คเกจที่มีให้ใช้ได้ด้วยคำสั่ง `omf search -t` (สำหรับธีม) หรือ `omf search -p` (สำหรับปลั๊กอิน)
4. ตรวจสอบและลบแพ็คเกจที่ติดตั้งไว้
สามารถตรวจสอบรายการแพ็คเกจ (ธีมและปลั๊กอิน) ที่ติดตั้งผ่าน OMF ได้ด้วยคำสั่ง `list`
omf list
ลบปลั๊กอินที่ไม่ต้องการแล้วด้วยคำสั่ง `remove`
omf remove fzf
🤔 Fisher vs Oh My Fish: สรุปแล้วใช้อันไหนดี?
หลังจากที่แนะนำทั้งสองเครื่องมือไปแล้ว บางคนอาจจะยังลังเลว่า "แล้วสรุปจะใช้อันไหนดีล่ะ?" ด้านล่างนี้คือแนวทางการเลือกง่ายๆ ครับ
-
🎣 คนที่เหมาะกับ Fisher
- คนที่ชอบสภาพแวดล้อมที่เรียบง่ายและเบา
- คนที่อยากค้นหาปลั๊กอินจาก GitHub มาผสมผสานกันอย่างอิสระ
- คนที่ต้องการจัดการการตั้งค่าทั้งหมดไว้ที่เดียวใน `config.fish`
-
🐠 คนที่เหมาะกับ Oh My Fish
- คนที่เป็นมือใหม่ในการปรับแต่งเทอร์มินัลและไม่รู้จะเริ่มจากตรงไหน
- คนที่อยากเลือกใช้ธีมและปลั๊กอินจากแคตตาล็อกที่มีให้เลือกมากมาย
- คนที่ให้ความสำคัญกับความง่ายในการใช้งาน เช่น การเปลี่ยนธีมด้วยคำสั่งเดียว
ลองเลือกใช้อันใดอันหนึ่งก่อน หากรู้สึกว่าไม่เหมาะ ก็ค่อยลองเปลี่ยนไปใช้อีกอันหนึ่งก็ได้ครับ
✍️ ขั้นสูง: ปรับแต่งเพิ่มเติมด้วยการแก้ไขไฟล์ `config.fish` โดยตรง!
นอกจากการใช้ตัวจัดการปลั๊กอินแล้ว เรายังสามารถปรับแต่งต่างๆ ได้โดยการแก้ไขไฟล์ตั้งค่า `config.fish` ของ Fish โดยตรง การนำไปใช้ร่วมกับฟังก์ชันของปลั๊กอินจะช่วยให้เราสร้างสภาพแวดล้อมที่ทรงพลังยิ่งขึ้นได้
ไฟล์ตั้งค่าโดยปกติจะอยู่ที่ `~/.config/fish/config.fish` คำสั่งที่เขียนไว้ในไฟล์นี้จะถูกโหลดโดยอัตโนมัติเมื่อ Fish เริ่มทำงาน
ตั้งค่า Alias เพื่อย่อคำสั่ง
การตั้งชื่อเล่น (alias) ให้กับคำสั่งยาวๆ ที่ใช้บ่อยๆ จะช่วยให้สะดวกขึ้นมาก เช่น เรามาลองตั้งให้คำสั่ง `ls -laF` สามารถรันได้ด้วย `ll` กัน
เพิ่มบรรทัดด้านล่างนี้ลงในไฟล์ `config.fish`
alias ll="ls -laF"
หลังจากบันทึกไฟล์แล้ว ให้เปิดเทอร์มินัลใหม่หรือรันคำสั่ง `source ~/.config/fish/config.fish` เพื่อให้การตั้งค่ามีผล ตอนนี้แค่พิมพ์ `ll` ก็จะเท่ากับรัน `ls -laF` แล้ว
การตั้ง alias ให้กับคำสั่ง Git ก็เป็นที่นิยมเช่นกัน
alias gco="git checkout"
alias gst="git status"
alias gaa="git add ."
ตั้งค่าตัวแปรสภาพแวดล้อม (Environment Variables)
ตัวแปรที่ต้องการใช้ร่วมกันทั้งระบบ เช่น การตั้งค่า editor จะถูกตั้งค่าเป็น "ตัวแปรสภาพแวดล้อม" ใน Fish เราจะใช้ `set -x` เช่น หากต้องการตั้งค่า editor เริ่มต้นเป็น `vim` ให้เขียนดังนี้ใน `config.fish`
set -x EDITOR "vim"
⚠️ ข้อควรระวัง
การปรับแต่งเป็นเรื่องสนุก แต่ก็มีข้อควรระวังบางประการ
- ระวังการติดตั้งปลั๊กอินมากเกินไป: ถึงแม้จะสะดวก แต่การติดตั้งปลั๊กอินจำนวนมากอาจส่งผลต่อประสิทธิภาพ เช่น ทำให้ shell เปิดช้าลง ควรเลือกเฉพาะสิ่งที่จำเป็นจริงๆ
- การสำรองไฟล์ตั้งค่า: ก่อนที่จะแก้ไขไฟล์ `config.fish` โดยตรง หรือทำการเปลี่ยนแปลงการตั้งค่าของตัวจัดการปลั๊กอินครั้งใหญ่ ขอแนะนำอย่างยิ่งให้สำรองไฟล์ตั้งค่าไว้ก่อน หากเกิดปัญหาขึ้นมา จะได้สามารถย้อนกลับไปยังสถานะเดิมได้อย่างรวดเร็ว
- ปัญหาความเข้ากันได้: ในบางครั้ง ปลั๊กอินอาจขัดแย้งกันเองและทำงานไม่ถูกต้อง หากเกิดปัญหาขึ้น ลองปิดการใช้งานปลั๊กอินที่เพิ่งเพิ่มเข้าไปทีละตัวเพื่อหาสาเหตุ
🎉 สรุป
ในครั้งนี้ เราได้แนะนำวิธีการใช้งานตัวจัดการปลั๊กอิน "Fisher" และ "Oh My Fish" ซึ่งเป็นก้าวแรกของการปรับแต่ง Fish shell รวมถึงวิธีการปรับแต่งพื้นฐานผ่านไฟล์ `config.fish`
ในช่วงแรก แค่ลองคัดลอกและวางโค้ดไปใช้ก็เพียงพอแล้ว การที่หน้าตาของ prompt เปลี่ยนไป หรือสามารถใช้คำสั่งใหม่ๆ ได้ จะทำให้การทำงานพัฒนาในแต่ละวันสนุกขึ้นอย่างแน่นอน
จากนี้ไป ลองค้นหาธีมและปลั๊กอินต่างๆ เพิ่มเติม แล้วสร้าง "สภาพแวดล้อมเทอร์มินัลสุดแกร่ง" ในแบบฉบับของคุณเองได้เลย!