مدير ملفات طرفي فائق السرعة مكتوب بلغة 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 | حفظ آخر مجلد عند الخروج |
# 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 | اللصق كرابط صلب |
| أمر | وصف |
|---|
a | إنشاء ملف أو مجلد جديد (/ في النهاية = مجلد) |
r | إعادة تسمية الملف المحدد |
c | إعادة التسمية مع المؤشر في النهاية |
d | نقل الملفات المحددة إلى سلة المهملات |
D | حذف الملفات المحددة نهائياً |
. | تبديل عرض الملفات المخفية |
إنشاء الملفات والمجلدات:
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 + - | تقليل عرض لوحة المعاينة |
| النوع | المتطلبات |
|---|
| ملفات نصية | تلوين بناء الجملة مدمج |
| صور (PNG, JPG, GIF) | بروتوكول Kitty أو iTerm2 أو Sixel |
| ملفات SVG | ImageMagick |
| مستندات PDF | Poppler (pdftoppm) |
| صور مصغرة للفيديو | ffmpegthumbnailer |
| أرشيفات (zip, tar, إلخ) | unar أو 7z |
| Markdown | عرض مدمج |
| JSON/YAML | تنسيق مدمج |
| مجلدات | قائمة مدمجة |
بروتوكولات معاينة الصور (كشف تلقائي):
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 (الإضافات) |
# ~/.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 # إعادة المحاولة عند الخطأ
# ~/.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 | البحث والقفز إلى الملفات |
# ~/.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()
-
ثبّت جميع تبعيات المعاينة — ثبّت ffmpegthumbnailer و poppler و unar و jq و fd و ripgrep و imagemagick للحصول على تجربة معاينة كاملة. بدونها، تظهر العديد من أنواع الملفات كنص خام.
-
استخدم غلاف الصدفة — أعد إعداد دالة الغلاف y لتنفيذ cd إلى آخر مجلد عند الخروج من Yazi، مما يجعله أداة تنقل حقيقية بدلاً من مجرد عارض.
-
أضف إشارات مرجعية للمجلدات — قم بإعداد اختصارات مخصصة للمجلدات المتكررة (g d للتنزيلات، g p للمشاريع) في keymap.toml للتنقل الفوري.
-
فعّل تكامل zoxide — مع تثبيت zoxide، يتيح لك الضغط على z في Yazi القفز إلى أي مجلد تمت زيارته سابقاً بدون التنقل يدوياً.
-
استخدم الألسنة للعمل في مواقع متعددة — اضغط t لفتح ألسنة جديدة عندما تحتاج للعمل عبر مجلدات متعددة، ثم استخدم 1-9 للتبديل فوراً.
-
خصص نسب الأعمدة — اضبط ratio = [1, 4, 3] في yazi.toml لموازنة القائمة الأصلية والمجلد الحالي ولوحة المعاينة حسب حجم شاشتك.
-
ثبّت إضافة git — تعرض إضافة yazi-rs/plugins:git مؤشرات حالة git بجانب الملفات، مما يسهل رؤية الملفات المعدّلة والمُعدّة وغير المتتبعة.
-
استخدم الوضع المرئي للعمليات بالجملة — اضغط V للدخول إلى الوضع المرئي، ثم j/k لتوسيع التحديد، ثم y/x/d للنسخ/القص/الحذف بالجملة.
-
خصص السمة الخاصة بك — خصص theme.toml بألوان تتناسب مع سمة الطرفية الخاصة بك للحصول على مظهر متناسق. عيّن ألواناً مختلفة لكل نوع ملف للتعرف البصري السريع.
-
استخدم البحث في المحتوى — اضغط S للبحث في محتوى الملفات باستخدام ripgrep — إنه مثل grep -r مع منتقي ملفات تفاعلي مدمج.