تخطَّ إلى المحتوى

Yazi

مدير ملفات طرفي فائق السرعة مكتوب بلغة Rust مع I/O غير متزامن ومعاينة الصور ونظام إضافات ودعم الألسنة المتعددة.

أمروصف
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagickتثبيت كامل على macOS مع جميع تبعيات المعاينة
brew install yaziتثبيت بسيط على macOS
cargo install --locked yazi-fm yazi-cliالتثبيت من crates.io
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxideتثبيت كامل على Arch Linux
scoop install yaziالتثبيت على Windows باستخدام Scoop
winget install sxyazi.yaziالتثبيت على Windows باستخدام winget
nix-env -i yaziالتثبيت على NixOS
snap install yazi --classicالتثبيت على Ubuntu عبر Snap
أمروصف
yaziتشغيل Yazi في المجلد الحالي
yazi /path/to/dirفتح Yazi في مجلد محدد
yazi --versionعرض الإصدار المثبت
ya --versionعرض إصدار مساعد CLI
yazi --cwd-file=/tmp/cwdحفظ آخر مجلد عند الخروج

غلاف الصدفة (cd عند الخروج)

Section titled “غلاف الصدفة (cd عند الخروج)”
# Bash/Zsh — أضف إلى ~/.bashrc أو ~/.zshrc
function y() {
  local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
  yazi "$@" --cwd-file="$tmp"
  if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
    builtin cd -- "$cwd"
  done
  rm -f -- "$tmp"
}
# Fish — أضف إلى ~/.config/fish/config.fish
function y
  set tmp (mktemp -t "yazi-cwd.XXXXXX")
  yazi $argv --cwd-file="$tmp"
  if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
    builtin cd -- "$cwd"
  end
  rm -f -- "$tmp"
end
أمروصف
j أو تحريك المؤشر للأسفل
k أو تحريك المؤشر للأعلى
h أو الانتقال إلى المجلد الأصلي
l أو أو Enterالدخول إلى المجلد أو فتح الملف
g gالانتقال إلى العنصر الأول
Gالانتقال إلى العنصر الأخير
~الانتقال إلى المجلد الرئيسي
Backspaceالانتقال إلى المجلد الأصلي
Ctrl + uالتمرير نصف صفحة للأعلى
Ctrl + dالتمرير نصف صفحة للأسفل
Ctrl + bالتمرير صفحة كاملة للأعلى
Ctrl + fالتمرير صفحة كاملة للأسفل
أمروصف
zالقفز إلى مجلد باستخدام zoxide
Zالقفز باستخدام zoxide (fzf تفاعلي)
-الانتقال إلى المجلد السابق
Ctrl + oالرجوع في سجل التنقل
Ctrl + iالتقدم في سجل التنقل
أمروصف
oفتح الملف بالبرنامج الافتراضي
Oفتح الملف تفاعلياً (اختيار البرنامج)
Enterفتح الملف أو الدخول إلى المجلد
qالخروج من Yazi
Qالخروج بدون حفظ cwd-file
أمروصف
yنسخ (yank) الملفات المحددة
xقص الملفات المحددة
pلصق الملفات المنسوخة/المقصوصة
Pاللصق مع الاستبدال
Y أو Xإلغاء النسخ/القص
- ثم pاللصق كرابط رمزي (مطلق)
_ ثم pاللصق كرابط رمزي (نسبي)
Ctrl + pاللصق كرابط صلب

الإنشاء والحذف وإعادة التسمية

Section titled “الإنشاء والحذف وإعادة التسمية”
أمروصف
aإنشاء ملف أو مجلد جديد (/ في النهاية = مجلد)
rإعادة تسمية الملف المحدد
cإعادة التسمية مع المؤشر في النهاية
dنقل الملفات المحددة إلى سلة المهملات
Dحذف الملفات المحددة نهائياً
.تبديل عرض الملفات المخفية

أمثلة على عمليات الملفات

Section titled “أمثلة على عمليات الملفات”
إنشاء الملفات والمجلدات:
  a myfile.txt      → إنشاء ملف جديد
  a mydir/          → إنشاء مجلد جديد (شرطة مائلة في النهاية)
  a path/to/file    → إنشاء بنية متداخلة

إعادة التسمية بالجملة:
  تحديد عدة ملفات → r → يفتح $EDITOR
  كل سطر = اسم ملف واحد، تحرير وحفظ لإعادة تسمية الكل
أمروصف
Spaceتبديل التحديد على الملف الحالي
Vالدخول إلى الوضع المرئي (تحديد متعدد)
Ctrl + aتحديد جميع الملفات
Ctrl + rعكس التحديد
Escapeمسح التحديد
أمروصف
mحفظ المجلد الحالي كإشارة مرجعية
'القفز إلى إشارة مرجعية
"حذف إشارة مرجعية
أمروصف
tإنشاء لسان جديد في المجلد الحالي
Ctrl + cإغلاق اللسان الحالي
1 - 9التبديل إلى لسان حسب الرقم
[التبديل إلى اللسان السابق
]التبديل إلى اللسان التالي
{تبادل اللسان مع السابق
}تبادل اللسان مع التالي
أمروصف
/البحث عن ملفات في المجلد الحالي
?البحث عن ملفات بالاتجاه العكسي
nالانتقال إلى نتيجة البحث التالية
Nالانتقال إلى نتيجة البحث السابقة
أمروصف
fتصفية الملفات (إظهار المطابقة فقط)
sالبحث عن ملفات باستخدام fd (تكراري)
Sالبحث في محتوى الملفات باستخدام ripgrep
: ثم كتابة الأمرفتح وضع الأوامر
البحث عن الملفات باستخدام fd (اضغط 's'):
  يجد الملفات بشكل تكراري حسب نمط الاسم
  يستخدم fd داخلياً للبحث السريع
  تظهر النتائج في المحدد — Enter للانتقال

البحث في المحتوى باستخدام ripgrep (اضغط 'S'):
  يبحث في محتوى الملفات بشكل تكراري
  يستخدم ripgrep للبحث السريع في النصوص
  تعرض النتائج الملف + السطر المطابق
أمروصف
لوحة المعاينة تعرض محتوى الملفتلقائي للأنواع المدعومة
Tabتبديل عرض لوحة المعاينة
Ctrl + Shift + =زيادة عرض لوحة المعاينة
Ctrl + Shift + -تقليل عرض لوحة المعاينة

أنواع المعاينة المدعومة

Section titled “أنواع المعاينة المدعومة”
النوعالمتطلبات
ملفات نصيةتلوين بناء الجملة مدمج
صور (PNG, JPG, GIF)بروتوكول Kitty أو iTerm2 أو Sixel
ملفات SVGImageMagick
مستندات PDFPoppler (pdftoppm)
صور مصغرة للفيديوffmpegthumbnailer
أرشيفات (zip, tar, إلخ)unar أو 7z
Markdownعرض مدمج
JSON/YAMLتنسيق مدمج
مجلداتقائمة مدمجة

دعم بروتوكولات الطرفية

Section titled “دعم بروتوكولات الطرفية”
بروتوكولات معاينة الصور (كشف تلقائي):

Kitty    — طرفية Kitty (أفضل جودة)
iTerm2   — iTerm2, WezTerm, Mintty
Sixel    — العديد من الطرفيات (foot, mlterm, إلخ)
X11/Wayland — عبر ueberzugpp (بديل)

تعيين البروتوكول يدوياً في yazi.toml:
  [preview]
  image_quality = 75
أمروصف
,mالترتيب حسب وقت التعديل
,Mالترتيب حسب وقت التعديل (معكوس)
,cالترتيب حسب وقت الإنشاء
,Cالترتيب حسب وقت الإنشاء (معكوس)
,eالترتيب حسب الامتداد
,Eالترتيب حسب الامتداد (معكوس)
,sالترتيب حسب الحجم
,Sالترتيب حسب الحجم (معكوس)
,nالترتيب حسب الاسم (طبيعي)
,Nالترتيب حسب الاسم (معكوس)
,rترتيب عشوائي
wتبديل مدير المهام
Tتبديل التخطيط (1/2/3 أعمدة)
الملفالغرض
~/.config/yazi/yazi.tomlالإعدادات الرئيسية
~/.config/yazi/keymap.tomlاختصارات لوحة المفاتيح المخصصة
~/.config/yazi/theme.tomlسمة الألوان
~/.config/yazi/init.luaسكربت تهيئة Lua (الإضافات)

الإعدادات الرئيسية (yazi.toml)

Section titled “الإعدادات الرئيسية (yazi.toml)”
# ~/.config/yazi/yazi.toml

[manager]
ratio = [1, 4, 3]          # نسب الأعمدة (الأصلي، الحالي، المعاينة)
sort_by = "natural"         # natural, modified, created, extension, size
sort_sensitive = false       # ترتيب حساس لحالة الأحرف
sort_reverse = false         # ترتيب عكسي
sort_dir_first = true        # المجلدات قبل الملفات
linemode = "size"           # none, size, permissions, mtime
show_hidden = false          # إظهار الملفات المخفية
show_symlink = true          # إظهار أهداف الروابط الرمزية

[preview]
tab_size = 2                # عرض التبويب في المعاينات
max_width = 600             # أقصى عرض للمعاينة
max_height = 900            # أقصى ارتفاع للمعاينة
image_quality = 75          # جودة JPEG لمعاينة الصور
sixel_fraction = 15         # نسبة دقة Sixel

[opener]
edit = [
  { run = '${EDITOR:-vi} "$@"', block = true, for = "unix" },
  { run = 'code "%*"', orphan = true, for = "windows" },
]

[tasks]
micro_workers = 10          # عمليات الملفات الصغيرة
macro_workers = 25          # عمليات الملفات الكبيرة
bizarre_retry = 5           # إعادة المحاولة عند الخطأ

اختصارات لوحة المفاتيح المخصصة (keymap.toml)

Section titled “اختصارات لوحة المفاتيح المخصصة (keymap.toml)”
# ~/.config/yazi/keymap.toml

[[manager.prepend_keymap]]
on = ["g", "d"]
run = "cd ~/Downloads"
desc = "الانتقال إلى التنزيلات"

[[manager.prepend_keymap]]
on = ["g", "p"]
run = "cd ~/projects"
desc = "الانتقال إلى المشاريع"

[[manager.prepend_keymap]]
on = ["g", "c"]
run = "cd ~/.config"
desc = "الانتقال إلى الإعدادات"

# فتح الطرفية في المجلد الحالي
[[manager.prepend_keymap]]
on = ["!"]
run = 'shell "$SHELL" --block'
desc = "فتح الطرفية هنا"

# ضغط الملفات المحددة
[[manager.prepend_keymap]]
on = ["C"]
run = 'shell "zip -r archive.zip $@" --block'
desc = "ضغط المحدد"
# ~/.config/yazi/theme.toml

[filetype]
rules = [
  { name = "*/", fg = "#7aa2f7" },           # مجلدات
  { mime = "text/*", fg = "#c0caf5" },        # ملفات نصية
  { mime = "image/*", fg = "#bb9af7" },       # صور
  { mime = "video/*", fg = "#e0af68" },       # فيديو
  { mime = "audio/*", fg = "#9ece6a" },       # صوت
  { name = "*.rs", fg = "#ff9e64" },          # ملفات Rust
  { name = "*.py", fg = "#7aa2f7" },          # ملفات Python
  { name = "*.md", fg = "#73daca" },          # Markdown
]
أمروصف
ya pack -a owner/pluginتثبيت إضافة
ya pack -iتثبيت جميع الإضافات من package.toml
ya pack -uتحديث جميع الإضافات المثبتة
ya pack -lعرض الإضافات المثبتة
الإضافةوصف
yazi-rs/plugins:full-borderحدود كاملة حول اللوحات
yazi-rs/plugins:gitمؤشرات حالة Git
yazi-rs/plugins:chmodتغيير أذونات الملفات
yazi-rs/plugins:max-previewتكبير لوحة المعاينة
yazi-rs/plugins:jump-to-charالقفز بأسلوب Vim إلى حرف
DreamMaoMao/searchjump.yaziالبحث والقفز إلى الملفات

مثال على إعداد الإضافات

Section titled “مثال على إعداد الإضافات”
# ~/.config/yazi/package.toml
[plugin]
prepend_previewers = [
  { name = "*.md", run = "glow" },
]

# التثبيت والتفعيل
# ya pack -a yazi-rs/plugins:full-border
# ya pack -a yazi-rs/plugins:git
# ya pack -i
-- ~/.config/yazi/init.lua
-- تفعيل الإضافات المثبتة
require("full-border"):setup()
require("git"):setup()
  1. ثبّت جميع تبعيات المعاينة — ثبّت ffmpegthumbnailer و poppler و unar و jq و fd و ripgrep و imagemagick للحصول على تجربة معاينة كاملة. بدونها، تظهر العديد من أنواع الملفات كنص خام.

  2. استخدم غلاف الصدفة — أعد إعداد دالة الغلاف y لتنفيذ cd إلى آخر مجلد عند الخروج من Yazi، مما يجعله أداة تنقل حقيقية بدلاً من مجرد عارض.

  3. أضف إشارات مرجعية للمجلدات — قم بإعداد اختصارات مخصصة للمجلدات المتكررة (g d للتنزيلات، g p للمشاريع) في keymap.toml للتنقل الفوري.

  4. فعّل تكامل zoxide — مع تثبيت zoxide، يتيح لك الضغط على z في Yazi القفز إلى أي مجلد تمت زيارته سابقاً بدون التنقل يدوياً.

  5. استخدم الألسنة للعمل في مواقع متعددة — اضغط t لفتح ألسنة جديدة عندما تحتاج للعمل عبر مجلدات متعددة، ثم استخدم 1-9 للتبديل فوراً.

  6. خصص نسب الأعمدة — اضبط ratio = [1, 4, 3] في yazi.toml لموازنة القائمة الأصلية والمجلد الحالي ولوحة المعاينة حسب حجم شاشتك.

  7. ثبّت إضافة git — تعرض إضافة yazi-rs/plugins:git مؤشرات حالة git بجانب الملفات، مما يسهل رؤية الملفات المعدّلة والمُعدّة وغير المتتبعة.

  8. استخدم الوضع المرئي للعمليات بالجملة — اضغط V للدخول إلى الوضع المرئي، ثم j/k لتوسيع التحديد، ثم y/x/d للنسخ/القص/الحذف بالجملة.

  9. خصص السمة الخاصة بك — خصص theme.toml بألوان تتناسب مع سمة الطرفية الخاصة بك للحصول على مظهر متناسق. عيّن ألواناً مختلفة لكل نوع ملف للتعرف البصري السريع.

  10. استخدم البحث في المحتوى — اضغط S للبحث في محتوى الملفات باستخدام ripgrep — إنه مثل grep -r مع منتقي ملفات تفاعلي مدمج.