yazi: مدير ملفات سريع جوه التيرمنال مكتوب بـ Rust
yazi مدير ملفات للتيرمنال مبني على async I/O، فيه معاينة صور وكود، و plugins بـ Lua، وتكامل مع fd و ripgrep و fzf و zoxide. إزاي تسطّبه وتستخدم الـ shell wrapper.
لو أغلب يومك في التيرمنال، أكيد عارف الدايرة دي: cd وبعدين ls وبعدين cd .. وتدوّر تاني على الملف. yazi أداة بتحل الموضوع ده: مدير ملفات كامل جوه التيرمنال، سريع، وبيعرض معاينة للملفات وانت بتتنقل.
yazi إيه بالظبط؟
حسب الـ README الرسمي، yazi (اسمه معناه «بطة») مدير ملفات للتيرمنال مكتوب بـ Rust ومبني على non-blocking async I/O. الهدف إنه يكون سريع وسهل ويتظبط على مزاجك.
- الرخصة: MIT
- الشعبية: أكتر من ٤٣ ألف نجمة على GitHub
- آخر إصدار: v26.9.1 (١ سبتمبر ٢٠٢٦)
- الحالة: public beta، والمطوّرين بيقولوا إنه ينفع كـ daily driver بس متوقع breaking changes
ليه سريع؟
كل عمليات الـ I/O عنده async، والشغل اللي بياخد CPU موزّع على كذا thread. كمان فيه task scheduling بيوريك progress حقيقي، وتقدر تلغي أي task، وعنده preloading للصور والملفات العادية. النتيجة إن الواجهة مش بتقف وانت بتفتح فولدر فيه آلاف الملفات.
أهم المميزات
- معاينة صور built-in في terminals كتير، منها kitty و WezTerm و Ghostty و iTerm2 و Windows Terminal و Konsole و foot، ولو الـ terminal مش مدعوم فيه fallback عن طريق Überzug++ أو Chafa
- معاينة scrollable للكود (مع syntax highlighting) والـ PDF والأرشيف والفيديو والفولدرات
- Plugins بـ Lua: تقدر تغيّر أجزاء من الـ UI أو تضيف previewers خاصة بيك
- Package manager يركّب الـ plugins والـ themes بأمر واحد، ويحدّثهم أو يثبّتهم على version معيّن
- تكامل مع ripgrep و fd و fzf و zoxide
- Tabs واختيار ملفات من أكتر من فولدر، و bulk rename، وفك الأرشيف، و trash، و mouse support
التسطيب
على macOS بـ Homebrew:
brew install yazi
والدوكس بتنصح تسطّب dependencies اختيارية زي ffmpeg و poppler و fd و ripgrep و fzf و zoxide عشان المعاينة والبحث يشتغلوا كاملين.
وعلى Debian و Ubuntu فيه APT repo رسمي فيه builds لـ amd64 و arm64 (stable و nightly). الخطوات كاملة في صفحة التسطيب الرسمية.
حركة مهمة: الـ shell wrapper
لو خرجت من yazi، التيرمنال بيرجع للفولدر اللي كنت فيه قبل ما تفتحه. الدوكس بتقترح function صغيرة اسمها y بتخليك تفضل في آخر فولدر وصلتله. ده نسخة Bash/Zsh من الدوكس الرسمية:
function y() {
local tmp cwd
tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd" || builtin true
command rm -f -- "$tmp"
}
حطها في ملف إعدادات الشيل بتاعك، وبعد كده افتح yazi بـ y بدل yazi.
رأيي
لو شغلك كله في التيرمنال، خصوصًا على سيرفرات أو جوه Neovim و tmux، yazi بيوفّر وقت حقيقي في التنقل والمعاينة. لكن عشان المشروع لسه beta وفيه breaking changes، ثبّت الإعدادات بتاعتك في dotfiles وراجع الـ changelog قبل أي تحديث كبير.
المصادر
- yazi
- CLI
- Terminal
- Rust
- DevTools
- Open Source