پیشرفتهفصل 14 از 20⏱ حدود 12 دقیقه
🧩نصب و مدیریت پلاگینهای Yazi با ya pkg
ya pkg، معرفی پلاگینهای کاربردی و نصب و آپدیت و قفل نسخه.
یازی یه پکیجمنیجر داخلی داره به اسم ya pkg که هم پلاگینها رو نصب میکنه هم فلیورها رو، و نسخهشون رو توی package.toml قفل میکنه تا روی هر سیستم دیگهای دقیقاً همونها نصب بشه.
دستورهای پکیجمنیجر
terminal
bash
ya pkg add owner/plugin-name # نصب از یک مخزن
ya pkg add yazi-rs/plugins:git # نصب یک زیرپوشه از مخزن مونو
ya pkg list # لیست چیزهایی که نصب کردی
ya pkg upgrade # بهروزرسانی همه
ya pkg delete yazi-rs/plugins:git # حذف
ya pkg install # نصب همه از روی package.toml (سیستم جدید)
فایل package.toml رو خود پکیجمنیجر میسازه. برای ثابت نگهداشتن یه پلاگین هنگام upgrade، فقط ابتدای مقدار واقعی rev همون پلاگین علامت = بذار؛ مقدار hash رو دستی نساز. قبل از ارتقا، این فایل و تنظیماتت رو پشتیبان بگیر.
پلاگینهای کاربردی در مخزن رسمی
| پلاگین | کارش چیه |
|---|---|
| yazi-rs/plugins:git | نشون دادن وضعیت گیت (تغییر یافته، جدید، نادیده) کنار هر فایل |
| yazi-rs/plugins:full-border | کشیدن قاب کامل دور پنلها — خیلی خوشگلتر میشه |
| yazi-rs/plugins:smart-enter | کلید l یا Enter: پوشه رو باز کن، فایل رو اجرا کن |
| yazi-rs/plugins:smart-paste | پیست داخل پوشهی زیر مکاننما بدون وارد شدن بهش |
| yazi-rs/plugins:chmod | تغییر مجوز فایلهای انتخابشده با یه ورودی ساده |
| yazi-rs/plugins:toggle-pane | بزرگ/کوچک/مخفی کردن پنل پیشنمایش |
| yazi-rs/plugins:mount | مدیریت و mount کردن فلش و هارد اکسترنال از داخل یازی |
| yazi-rs/plugins:jump-to-char | پرش به فایل با زدن حرف اولش (مثل f در ویم) |
| yazi-rs/plugins:diff | گرفتن diff بین دو فایل انتخابشده |
| yazi-rs/plugins:mime-ext | تشخیص نوع فایل از پسوند؛ سرعت بیشتر در بعضی شرایط، با دقت کمتر |
یه بستهی پیشنهادی کامل
terminal
bash
ya pkg add yazi-rs/plugins:git
ya pkg add yazi-rs/plugins:full-border
ya pkg add yazi-rs/plugins:smart-enter
ya pkg add yazi-rs/plugins:chmod
ya pkg add yazi-rs/plugins:toggle-pane
ya pkg add yazi-rs/plugins:mount
ya pkg add yazi-rs/plugins:jump-to-char
~/.config/yazi/init.lua
lua
-- پلاگینهایی که setup لازم دارن
require("full-border"):setup()
require("git"):setup()
~/.config/yazi/yazi.toml
toml
# پلاگین گیت باید بهعنوان fetcher ثبت بشه
[[plugin.prepend_fetchers]]
group = "git"
url = "*"
run = "git"
[[plugin.prepend_fetchers]]
group = "git"
url = "*/"
run = "git"
~/.config/yazi/keymap.toml
toml
[[mgr.prepend_keymap]]
on = "l"
run = "plugin smart-enter"
desc = "ورود به پوشه یا باز کردن فایل"
[[mgr.prepend_keymap]]
on = "T"
run = "plugin toggle-pane max-preview"
desc = "بزرگ کردن پیشنمایش"
[[mgr.prepend_keymap]]
on = [ "c", "m" ]
run = "plugin chmod"
desc = "تغییر مجوز"
[[mgr.prepend_keymap]]
on = "M"
run = "plugin mount"
desc = "مدیریت دستگاههای ذخیرهسازی"
[[mgr.prepend_keymap]]
on = [ "g", "j" ]
run = "plugin jump-to-char"
desc = "پرش با حرف اول"
🎩پلاگین mount روی فدورا
این پلاگین از
udisksctl استفاده میکنه که توی بستهی udisks2 ــه و ممکنه روی نسخهی دسکتاپ فدورا از قبل نصب باشه. اگه نبود: sudo dnf install udisks2. فلشهای mountشده معمولاً توی /run/media/$USER/ ظاهر میشن.نصب دستی پلاگین
هر پلاگین فقط یه پوشه با پسوند .yazi ــه که حداقل یه main.lua داره:
مخزن واقعی پلاگین رو از سازنده بگیر، README و سازگاری نسخه رو بررسی کن و پوشه رو در~/.config/yazi/plugins/ قرار بده. برای مثال یه پوشه با نام cool.yazi با دستورplugin cool اجرا میشه. نصب دستی با ya pkg upgrade بهروز نمیشه.
⚠️ناسازگاری نسخه
اگه بعد از آپدیت یازی پلاگینی ارور داد، اول
ya pkg upgrade بزن. اگه بازم بود، به احتمال زیاد اون پلاگین هنوز با API جدید سازگار نشده — موقتاً از init.lua کامنتش کن.