🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

มาทำให้ Fish Shell ของคุณสุดยอด! คู่มือเริ่มต้นปรับแต่งด้วย Fisher และ Oh My Fish 🐟

สวัสดีครับ! นักสร้างสรรค์เว็บทุกท่าน ในการทำงานพัฒนาเว็บในแต่ละวัน คุณได้ใช้เทอร์มินัล (หน้าจอสีดำนั่นแหละครับ!) กันบ้างไหมครับ
จริงๆ แล้ว การปรับแต่งเทอร์มินัลนี้ให้เป็นสไตล์ของตัวเอง จะช่วยเพิ่มประสิทธิภาพในการพัฒนาได้อย่างมาก และที่สำคัญที่สุดคือทำให้การทำงานสนุกยิ่งขึ้นครับ

ในครั้งนี้ เราจะมาอธิบายวิธีการปรับแต่ง Shell ที่ขึ้นชื่อว่าทันสมัยและใช้งานง่ายอย่าง "Fish" กันอย่างละเอียด โดยเฉพาะอย่างยิ่ง ถ้าใช้ตัวจัดการปลั๊กอินอย่าง "Fisher" และ "Oh My Fish" ก็จะสามารถเพิ่มธีมและฟังก์ชันอำนวยความสะดวกได้ง่ายๆ เหมือนกับการติดตั้งแอปพลิเคชันบนสมาร์ทโฟนเลยทีเดียว

วัตถุประสงค์ของบทความนี้คือ เพื่อให้มือใหม่ได้สัมผัสกับประสบการณ์ที่ "ใช้งานได้จริง" เพียงแค่คัดลอกและวางโค้ด เท่านั้น ไม่ต้องไปสนใจทฤษฎียากๆ! มาเริ่มจากการเปลี่ยนหน้าตา เพิ่มฟังก์ชันเจ๋งๆ แล้วมาสัมผัสความสนุกของการปรับแต่งกันเลยครับ


🚀 เริ่มต้นเตรียมความพร้อม: ตัวจัดการปลั๊กอินคืออะไร?

ก่อนที่จะเริ่มปรับแต่ง Fish เรามาทำความเข้าใจกันก่อนว่า "ตัวจัดการปลั๊กอิน" คืออะไร

มันคือเครื่องมือที่ช่วยให้เราสามารถเพิ่ม จัดการ และลบหน้าตา (ธีม) และฟังก์ชัน (ปลั๊กอิน) ของ Fish ได้อย่างง่ายดาย หากไม่มีเครื่องมือนี้ เราจะต้องดาวน์โหลดไฟล์มาเอง วางไว้ในตำแหน่งที่กำหนด แล้วก็ต้องไปแก้ไขไฟล์ตั้งค่า... ซึ่งเป็นงานที่ยุ่งยากมาก

แต่ถ้าใช้ตัวจัดการปลั๊กอิน เพียงแค่รันคำสั่งเดียว งานที่น่าเบื่อเหล่านั้นก็จะถูกจัดการให้โดยอัตโนมัติทั้งหมด ในครั้งนี้เราจะมาแนะนำ 2 ตัวที่ได้รับความนิยมเป็นพิเศษครับ

ทั้งสองเป็นเครื่องมือที่ยอดเยี่ยม แต่ก็มีลักษณะเด่นที่แตกต่างกันไป ในบทความนี้เราจะอธิบายวิธีการใช้งานทั้งสองแบบ เพื่อให้คุณได้เลือกใช้ให้เหมาะสมกับตัวเองนะครับ

*บทความนี้ตั้งอยู่บนสมมติฐานว่าคุณได้ติดตั้ง 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: สรุปแล้วใช้อันไหนดี?

หลังจากที่แนะนำทั้งสองเครื่องมือไปแล้ว บางคนอาจจะยังลังเลว่า "แล้วสรุปจะใช้อันไหนดีล่ะ?" ด้านล่างนี้คือแนวทางการเลือกง่ายๆ ครับ

ลองเลือกใช้อันใดอันหนึ่งก่อน หากรู้สึกว่าไม่เหมาะ ก็ค่อยลองเปลี่ยนไปใช้อีกอันหนึ่งก็ได้ครับ


✍️ ขั้นสูง: ปรับแต่งเพิ่มเติมด้วยการแก้ไขไฟล์ `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"

⚠️ ข้อควรระวัง

การปรับแต่งเป็นเรื่องสนุก แต่ก็มีข้อควรระวังบางประการ


🎉 สรุป

ในครั้งนี้ เราได้แนะนำวิธีการใช้งานตัวจัดการปลั๊กอิน "Fisher" และ "Oh My Fish" ซึ่งเป็นก้าวแรกของการปรับแต่ง Fish shell รวมถึงวิธีการปรับแต่งพื้นฐานผ่านไฟล์ `config.fish`

ในช่วงแรก แค่ลองคัดลอกและวางโค้ดไปใช้ก็เพียงพอแล้ว การที่หน้าตาของ prompt เปลี่ยนไป หรือสามารถใช้คำสั่งใหม่ๆ ได้ จะทำให้การทำงานพัฒนาในแต่ละวันสนุกขึ้นอย่างแน่นอน
จากนี้ไป ลองค้นหาธีมและปลั๊กอินต่างๆ เพิ่มเติม แล้วสร้าง "สภาพแวดล้อมเทอร์มินัลสุดแกร่ง" ในแบบฉบับของคุณเองได้เลย!