fzf: ค้นไฟล์ ประวัติคำสั่ง และรายการใน Terminal ให้เร็วขึ้น
เรียนรู้วิธีใช้ fzf เป็น fuzzy finder สำหรับค้นไฟล์ command history, Git branch และ process พร้อมต่อยอดเป็น workflow ที่ลดการสลับหน้าต่างระหว่างทำงาน

ภาพรวม
ถ้าใช้ terminal ทุกวัน แต่ยังเลื่อนหาไฟล์กันยาวๆ หรือกดย้อน command history รัวๆ อยู่
มีเครื่องมือเล็กๆ ที่ช่วยประหยัดเวลาได้แบบรู้สึกต่างตั้งแต่วันแรกที่ใช้ ⚡💻
มันชื่อว่า fzf 🔎
จุดเด่นของมันไม่ได้อยู่ที่ความซับซ้อน แต่อยู่ที่ความเร็วในการ “พิมพ์ไม่กี่ตัวแล้วเจอสิ่งที่ต้องการทันที”
fzf เป็น fuzzy finder สำหรับ terminal ต่อให้พิมพ์ไม่ตรงทั้งหมด มันก็ยังเดาและจัดอันดับผลลัพธ์ให้ได้ดีมาก
พูดง่ายๆ ถ้าจำชื่อไฟล์ได้แค่บางส่วน จำ command เก่าได้แค่คำต้นๆ หรืออยากเลือก branch, process, folder แบบไวๆ เครื่องมือนี้ช่วยได้เยอะมาก 🚀
สิ่งที่หลายคนยังไม่รู้คือ fzf ไม่ได้มีประโยชน์แค่ “ค้นหาไฟล์” แต่มันกลายเป็นตัวกลางของ workflow ใน terminal ได้เลย
ตัวอย่างการใช้งานที่เห็นผลเร็วมาก
-
ค้นไฟล์ไวขึ้น 📁 จากเดิมใช้ ls แล้วไล่ดูทีละชั้น เปลี่ยนเป็นพิมพ์บางคำแล้วเลือกได้ทันที เหมาะมากกับโปรเจกต์ที่มีไฟล์เยอะ
-
ย้อน command history แบบฉลาดขึ้น ⌛ แทนที่จะกดลูกศรขึ้นหลายสิบครั้ง ใช้ fzf ค้นจาก history แล้วเลือกคำสั่งเดิมกลับมาใช้ได้เร็วมาก
-
เปิดไฟล์เข้า editor ได้ต่อเนื่อง 🧠 หลายคนผูก fzf กับ vim, neovim หรือ VS Code ผ่าน shell function ทำให้ flow การเปิดไฟล์ลื่นแบบแทบไม่ต้องละมือจากคีย์บอร์ด
-
สลับโฟลเดอร์เร็วขึ้น 🗂️ เวลาเข้าโปรเจกต์หลายตัวในวันเดียว ค้นชื่อโฟลเดอร์แล้วกระโดดเข้าไปทำงานต่อได้ทันที
-
ใช้คู่กับคำสั่งอื่นได้เก่งมาก 🔧 อย่าง find, fd, rg, git branch, ps เมื่อเอาผลลัพธ์เหล่านี้ส่งเข้า fzf terminal จะเริ่มรู้สึกเหมือนมี UI แบบเบาๆ ซ่อนอยู่
ตัวอย่างภาพง่ายๆ ของแนวคิด
พิมพ์รายชื่อไฟล์ทั้งหมด แล้วให้ fzf ช่วยกรอง จากนั้นเลือกไฟล์ที่ต้องการ
หรือค้นจากประวัติ command แล้วกดเลือกคำสั่งที่อยากรันซ้ำ
ความเจ๋งอีกอย่างคือ fzf ไม่ได้บังคับ workflow เดียว คุณค่อยๆ เพิ่มมันเข้าไปทีละจุดได้ 🧩
เริ่มจากค้นไฟล์ก่อนก็ได้ พอชินแล้วค่อยขยับไปค้น branch ค้น process หรือทำ shortcut ใช้งานเอง
สำหรับคนที่ชอบปรับแต่ง fzf มี preview window ด้วย 👀 หมายความว่าเวลาค้นไฟล์ สามารถแสดงตัวอย่างเนื้อหาไฟล์ด้านข้างได้เลย
เช่น ค้นไฟล์ log แล้วดูตัวอย่างทันที ค้น markdown แล้วเห็นหัวข้อก่อนเปิด หรือค้น git diff แล้วสแกนการเปลี่ยนแปลงเบื้องต้นได้
จุดนี้ทำให้มันไม่ใช่แค่ “ตัวค้น” แต่เป็น “ตัวช่วยตัดสินใจ” ก่อนเปิดสิ่งที่ต้องการจริงๆ
อีกเรื่องที่หลายทีมได้ประโยชน์มาก คือการลด context switching 🧭
แทนที่จะสลับไปเปิด file explorer เปิด history viewer หรือเปิดหลายหน้าต่างเพื่อหาอะไรบางอย่าง หลายงานจบได้ใน terminal หน้าต่างเดียว
ผลลัพธ์ที่ตามมาไม่ใช่แค่เร็วขึ้น แต่สมาธิไม่หลุดง่ายด้วย
มือใหม่ใช้ fzf ได้เหมือนกัน 🤝 ไม่จำเป็นต้องเป็นสาย terminal จัดๆ แค่เริ่มจาก use case ง่ายที่สุด “อยากหาไฟล์ให้ไวกว่าเดิม” ก็เห็นความต่างแล้ว
ส่วนคนที่เขียน shell script หรือทำ dev workflow เอง fzf ยิ่งทรงพลังมาก เพราะเอาไปประกอบเป็นเมนูเลือกแบบ interactive ได้สบาย
บางคนใช้ทำ launcher ใน terminal เลือก environment เลือก container เลือก commit เลือกโน้ต หรือแม้แต่เลือก snippet ที่จะ paste
เครื่องมือเล็กๆ แบบนี้มักไม่ได้ดังเท่า framework ใหม่ๆ ✨ แต่กลับเป็นของที่ช่วยคืนเวลาให้ทุกวันแบบจับต้องได้
ถ้างานส่วนใหญ่เริ่มจาก terminal fzf เป็นหนึ่งในของที่ติดตั้งแล้วมีโอกาสพูดคำว่า “น่าจะใช้ตั้งนานแล้ว” มากที่สุดตัวหนึ่ง 🔥
เริ่มต้นไม่ยาก ติดตั้งให้ shell รู้จักมัน ลองใช้กับ file search และ command history ก่อน แล้วค่อยต่อยอดไปยัง workflow ที่ใช้ประจำ 🛠️
ของบางอย่างไม่ได้ทำให้เขียนโค้ดเก่งขึ้นทันที แต่ทำให้ทุกอย่างรอบการเขียนโค้ดลื่นขึ้นมาก และ fzf เป็นตัวอย่างที่ชัดมากของเรื่องนั้น 🎯
แนวทางนำไปใช้
- นำแนวคิดจากโพสต์นี้ไปทดลองกับงานจริงของคุณ
- แยกเป็นขั้นตอนเล็ก ๆ แล้วทำทีละส่วน
- บันทึกผลลัพธ์และสิ่งที่เรียนรู้เพื่อต่อยอด
สรุป
เรียนรู้วิธีใช้ fzf เป็น fuzzy finder สำหรับค้นไฟล์ command history, Git branch และ process พร้อมต่อยอดเป็น workflow ที่ลดการสลับหน้าต่างระหว่างทำงาน