อัปเกรด Bash ให้ล้ำสมัยด้วย Flyline เครื่องมือเสริมประสิทธิภาพที่สร้างด้วย Rust
ผู้ใช้ Linux ส่วนใหญ่ได้รับประโยชน์จาก GNU Readline โดยไม่รู้ตัว เพราะมันคือไลบรารีที่จัดการการแก้ไขบรรทัดคำสั่งแบบโต้ตอบใน Bash พร้อมคุณสมบัติคุ้นมืออย่างการเลื่อนเคอร์เซอร์ ประวัติคำสั่ง และการเติมคำพื้นฐานด้วยปุ่ม Tab
แม้ว่า Readline is highly configurable จะสามารถตั้งค่าได้หลากหลาย แต่การเติมคำมาตรฐานยังถือว่าค่อนข้างเรียบง่ายเกินไปสำหรับการใช้งานในปัจจุบัน
ผมได้พบกับเครื่องมือใหม่ชื่อว่า Flyline ซึ่งยกระดับการเติมคำสั่งของ Bash ไปอีกขั้นโดยไม่ต้องตั้งค่าให้ยุ่งยาก สำหรับใครที่ต้องการควบคุมเชลล์ของตัวเองได้อย่างเต็มประสิทธิภาพ Flyline อาจกลายเป็นเครื่องมือที่ต้องมีติดเทอร์มินัลไว้
Flyline ใช้แนวทางที่แตกต่างออกไปโดยการเข้ามาแทนที่ Readline โดยตรง ตัวเครื่องมือถูกสร้างขึ้นด้วย Rust และ ratatui เพื่อเรนเดอร์อินเทอร์เฟซเทอร์มินัลที่สวยงามและตอบสนองได้ดีกว่าเดิม
สำรวจฟีเจอร์ของ Flyline
ความแตกต่างจะปรากฏให้เห็นทันทีที่เริ่มใช้งาน การแนะนำคำสั่งจะเด้งขึ้นมาขณะพิมพ์ ช่วยให้การทำงานในเทอร์มินัลรวดเร็วและลื่นไหลขึ้นอย่างเห็นได้ชัด
การแนะนำอัตโนมัติสไตล์ IntelliSense
Flyline จะแสดงป๊อปอัพการเติมคำถัดจากเคอร์เซอร์ทันทีที่คุณเริ่มพิมพ์ ช่วยให้คุณเห็นข้อเสนอแนะได้โดยไม่ต้องละสายตาจากจุดที่กำลังทำงาน
Flyline IntelliSense Suggestion
คุณสามารถใช้ปุ่ม Tab หรือลูกศรขึ้น-ลง เพื่อเลือกคำสั่งที่ต้องการได้แบบเรียลไทม์ นอกจากนี้ยังมีสโครบาร์สำหรับรายการที่ยาวเป็นพิเศษ ซึ่งรองรับการเลื่อนดูด้วยเมาส์ได้อีกด้วย เมื่อได้คำสั่งที่ต้องการแล้วเพียงกด Enter เพื่อใส่ลงในบรรทัดคำสั่งทันที
การค้นหาแบบ Fuzzy และการเติมเส้นทาง
การเติมคำสั่งแบบเดิมมักต้องการความถูกต้องของลำดับตัวอักษร เช่น การพิมพ์ pamc จะไม่เจอ pacman แต่ Flyline แก้ไขปัญหานี้ด้วยระบบ Fuzzy Search ที่รองรับการพิมพ์ผิดเล็กน้อยหรือการจับคู่บางส่วน
Fuzzy Search
ฟีเจอร์นี้ยังใช้ได้ดีกับการเติมเส้นทางไฟล์และไดเรกทอรี ช่วยให้การเข้าถึงโฟลเดอร์ลึกๆ ทำได้ง่ายขึ้นโดยไม่ต้องกังวลเรื่องการพิมพ์ผิดเพียงตัวเดียวที่มักจะทำให้ต้องเริ่มพิมพ์ใหม่ทั้งหมด
การสังเคราะห์การเติมคำอัตโนมัติ (ตัวช่วยชีวิต)
สำหรับเครื่องมือ CLI ที่ไม่มีสคริปต์การเติมคำมาให้ Flyline สามารถสร้างขึ้นมาได้เองโดยการวิเคราะห์จากเอาต์พุต --help หรือหน้า man page
ตัวอย่างเช่นเมื่อผมใช้งาน ffmpeg ที่ไม่มีสคริปต์เติมคำในระบบ:
ffmpeg --<Tab>Flyline จะถามเพื่อขอยืนยันการสร้างสคริปต์เติมคำให้โดยอัตโนมัติ ช่วยประหยัดเวลาในการเปิดคู่มือหาอาร์กิวเมนต์ที่ซับซ้อนไปได้มาก
Synthesize Suggestions
ปรับแต่งเคอร์เซอร์ (เพื่อความสวยงาม)
Flyline นำแอนิเมชันเคอร์เซอร์คล้ายกับ Kitty terminal emulator มาให้ใช้งานในเทอร์มินัลทั่วไปได้ เพื่อเพิ่มสีสันให้การทำงาน
หากต้องการดูการตั้งค่าเคอร์เซอร์ ให้รันคำสั่ง:
flyline set-cursor --helpตัวอย่างการตั้งค่าหางเคอร์เซอร์แบบเคลื่อนไหว:
flyline set-cursor \
--backend flyline \
--style "#33ccff" \
--interpolate 1.5 \
--interpolate-easing out-elastic \
--effect fade \
--effect-easing in-out-sine \
--effect-speed 2.0Cursor Trail Emulation
ประวัติเชลล์ที่ขัดเกลาแล้ว
Flyline ปรับโฉมหน้าต่างค้นหาประวัติคำสั่งใหม่ให้สวยงามและอ่านง่ายขึ้น โดยรองรับการค้นหาแบบ fuzzy เช่นเดียวกัน
Refined History
ฟีเจอร์ที่น่าสนใจคือ Canceled Commands (กด Alt+R) ซึ่งจะจัดเก็บคำสั่งที่คุณเคยกด Ctrl+C ทิ้งไปโดยไม่ได้รัน ช่วยให้เรียกกลับมาใช้ใหม่ได้ง่าย โดยรายการนี้จะแยกออกจากประวัติปกติและจะถูกล้างเมื่อปิดเซสชันเทอร์มินัล
Cancelled Commands
การทำงานร่วมกับเอเจนท์ AI
คุณสามารถเชื่อมต่อ Flyline เข้ากับ AI เพื่อเปลี่ยนภาษาธรรมชาติให้เป็นคำสั่ง Bash ได้ เพียงกำหนดค่าและพิมพ์พรอมต์ที่ต้องการ
ตัวอย่างเช่น:
ai: list files older than three daysเมื่อกด Alt+Enter ระบบจะส่งข้อมูลไปให้ AI สร้างคำสั่งพร้อมเน้นไวยากรณ์มาให้คุณตัดสินใจก่อนรันจริง
การปรับแต่งพรอมต์
Flyline รองรับการสร้างพรอมต์ (Prompt) ที่ซับซ้อน ทั้งวิดเจ็ตไดนามิก แอนิเมชัน และการแสดงเวลาสด คุณสามารถคัดลอกตัวอย่างการตั้งค่านี้ไปใส่ใน ~/.bashrc เพื่อเริ่มใช้งานได้ทันที:
# 1. Create the animation widgets
flyline create-prompt-widget animation \
--name "SPINNER" \
--fps 12 \
'\e[38;2;137;180;250m⠋\e[0m' \
'\e[38;2;137;180;250m⠙\e[0m' \
'\e[38;2;137;180;250m⠹\e[0m' \
'\e[38;2;137;180;250m⠸\e[0m' \
'\e[38;2;137;180;250m⠼\e[0m' \
'\e[38;2;137;180;250m⠴\e[0m' \
'\e[38;2;137;180;250m⠦\e[0m' \
'\e[38;2;137;180;250m⠧\e[0m' \
'\e[38;2;137;180;250m⠇\e[0m' \
'\e[38;2;137;180;250m⠏\e[0m'
flyline create-prompt-widget animation \
--name "PULSE" \
--fps 6 \
--ping-pong \
'\e[38;2;166;227;161m●\e[0m' \
'\e[38;2;116;199;236m●\e[0m' \
'\e[38;2;203;166;247m●\e[0m'
# 2. Set prompt variables
PS1='\e[1;32m\u@\h\e[0m:\e[1;34m\w\e[0m\nSPINNER PULSE \e[1;35m❯\e[0m '
PS1_FILL='─'
RPS1='\e[38;2;249;226;175m\t\e[0m'
PS2='\e[2mFLYLINE_PROMPT_LINE_NUMBER ›\e[0m '
# 3. Set transient history cleanup
PS1_FINAL='\e[38;2;166;227;161m✔\e[0m \e[1;34m\w\e[0m \e[1;30m❯\e[0m '
RPS1_FINAL=''
PS1_FILL_FINAL=''
# 4. Enable cursor trail & motion
flyline set-cursor \
--backend flyline \
--style "#cba6f7" \
--interpolate 1.5 \
--interpolate-easing out-elastic \
--effect fade \
--effect-easing in-out-sine \
--effect-speed 2.0Custom animated Prompt
ติดตั้ง Flyline
รันสคริปต์ติดตั้งอย่างเป็นทางการผ่านเทอร์มินัล:
curl -sSfL https://github.com/HalFrgrd/flyline/releases/latest/download/install.sh | shตัวติดตั้งจะจัดการตั้งค่าใน ~/.bashrc ให้โดยอัตโนมัติ และขอแนะนำให้ลองใช้บทเรียนสอนใช้งานเบื้องต้นด้วยคำสั่ง:
flyline run-tutorialทางเลือกสำหรับผู้ใช้ ZSH
Flyline ออกแบบมาเพื่อ Bash โดยเฉพาะ แต่หากคุณใช้ ZSH อยู่แล้ว คุณสามารถใช้ปลั๊กอินอย่าง zsh-syntax-highlighting และ zsh-autosuggestions เพื่อรับประสบการณ์ที่ใกล้เคียงกันได้
ZSH Autosuggestion, Syntax Highlighting and Auto Complete
บทสรุป
Flyline เป็นตัวแทนเครื่องมือยุคใหม่ที่สร้างด้วย Rust เพื่อแก้ข้อจำกัดของเครื่องมือ GNU แบบดั้งเดิม โดยมอบความสะดวกสบายทั้งการเติมคำอัจฉริยะและการช่วยเหลือจาก AI โดยที่คุณไม่ต้องเปลี่ยนเชลล์หลักไปใช้ตัวอื่น
ลองนำ Flyline ไปใช้งานดูครับ นี่คือโปรเจกต์ที่มีอนาคตและน่าจับตามองว่าการพัฒนาในภายภาคหน้าจะเป็นอย่างไรต่อไป
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิก
SystemD_Solutionsเยี่ยมครับ!
