⚙️آموزش تنظیمات Yazi و فایل yazi.toml
ساختار فایلهای کانفیگ، mgr، preview، tasks و قواعد باز کردن.
تا اینجا با پیشفرضها کار کردیم. حالا وقتشه یازی رو بکنیم «مالِ خودمون». همهچیز توی ~/.config/yazi/ اتفاق میافته.
فایلهای اصلی که باید بشناسی
| yazi.toml | تنظیمات عمومی: چیدمان، مرتبسازی، پیشنمایش، openerها، وظایف |
| keymap.toml | کلیدهای میانبر در همهی لایهها |
| theme.toml | رنگها، آیکونها و انتخاب flavor |
| init.lua | کدهای Lua: بارگذاری پلاگینها، تغییر رابط، رویدادها |
| package.toml | قفل نسخهی پلاگینها (خودکار توسط ya ساخته میشه) |
mkdir -p ~/.config/yazi
cd ~/.config/yazi
touch yazi.toml keymap.toml theme.toml init.lua
v26.9.1 استفاده میکنیم؛ اگه نسخهی نصبشده فرق داره، تگ همون نسخه رو انتخاب کن. اگه میخوای ببینی پیشفرض چیه و ازش کپی بگیری:curl -fLO https://raw.githubusercontent.com/sxyazi/yazi/v26.9.1/yazi-config/preset/yazi-default.toml
curl -fLO https://raw.githubusercontent.com/sxyazi/yazi/v26.9.1/yazi-config/preset/keymap-default.toml
مفهوم کلیدی: Override در برابر Extend
این رو اگه بفهمی، ۹۰٪ سردرگمیهای کانفیگ حل میشه. برای آرایهها (کلیدها، قواعد باز کردن، پیشنمایشکنندهها) دو حالت داری:
- جایگزینی کامل: اگه بنویسی
keymap = [...]یاrules = [...]، همهی پیشفرضها پاک میشن و فقط چیزی که نوشتی میمونه. (معمولاً چیزی نیست که بخوای!) - افزودن: با
prepend_*قواعدت قبل از پیشفرضها و باappend_*بعد از اونها قرار میگیرن. چون اولین قاعدهی مطابق برندهست، برای بازنویسی یه پیشفرض ازprependاستفاده کن.
بخش [mgr] — قلب تنظیمات
[mgr]
ratio = [1, 4, 3] # نسبت عرض سه ستون؛ صفر یعنی مخفی
sort_by = "natural" # none|mtime|btime|extension|alphabetical|natural|size|random
sort_sensitive = false # حساس به بزرگی و کوچکی حروف
sort_reverse = false # ترتیب معکوس
sort_dir_first = true # پوشهها اول لیست
sort_translit = false # نرمالسازی حروف لهجهدار موقع مرتبسازی
linemode = "size" # اطلاعات کنار هر ردیف
show_hidden = false # نمایش فایلهای مخفی
show_symlink = true # نشون دادن مقصد لینکها
scrolloff = 5 # فاصلهی مکاننما از لبهها
mouse_events = ["click", "scroll"] # رویدادهای ماوس
[0, 1, 1] ستون والد رو حذف میکنه و فضای بیشتری میدی به لیست و پیشنمایش. اگه پیشنمایش نمیخوای [1, 4, 0].بخش [tasks] — کنترل موازیسازی
[tasks]
file_workers = 3 # عملیات فایل
plugin_workers = 5 # وظایف پلاگینها
fetch_workers = 5 # دریافت اطلاعات
preload_workers = 2 # پیشبارگذاری
process_workers = 5 # فرایندهای خارجی
bizarre_retry = 3 # تلاش مجدد در خطاهای موقت
image_alloc = 536870912 # حداکثر حافظه برای دیکد یک تصویر (بایت)
image_bound = [10000, 10000] # سقف ابعاد تصویر؛ صفر یعنی نامحدود
suppress_preload = false # مخفی کردن وظایف پیشبارگذاری از لیست
از پیشفرضها شروع کن. اگه مصرف منابع بالاست، تعداد کارهای همزمان رو یکییکی کمتر کن و نتیجه رو بسنج؛ مقدار مناسب به سختافزار و نوع فایل بستگی داره.
بخش [input] و [confirm] — ظاهر پنجرههای کوچیک
[input]
cursor_blink = true
# محل و اندازهی ورودی «ساخت فایل»
create_origin = "top-center"
create_offset = [0, 2, 50, 3]
# ورودی تغییر نام درست زیر خود فایل ظاهر بشه
rename_origin = "hovered"
rename_offset = [0, 1, 50, 3]
[confirm]
trash_origin = "center"
trash_offset = [0, 0, 70, 20]
بخش [which] — منوی راهنمای کلیدهای دنبالهای
[which]
sort_by = "none" # none | key | desc
sort_reverse = false
این همون پنجرهی کوچیکیه که وقتی g میزنی پایین صفحه ظاهر میشه و گزینههای بعدی رو نشون میده.
یه کانفیگ شروعکنندهی کامل برای فدورا
قبل از تغییر، از کانفیگ فعلی نسخهی پشتیبان بگیر. این نمونه برای شروعه؛ nvim و mpv رو جدا نصب کن یا نام اونها رو با برنامههای نصبشدهی خودت عوض کن. بخشهای تکراری TOML رو کنار هم کپی نکن:
[mgr]
ratio = [1, 4, 3]
sort_by = "natural"
sort_dir_first = true
sort_sensitive = false
linemode = "size"
show_hidden = false
show_symlink = true
scrolloff = 5
[preview]
wrap = "no"
tab_size = 2
max_width = 1200
max_height = 1200
image_delay = 30
image_filter = "triangle"
image_quality = 75
[opener]
edit = [ { run = 'nvim %s', block = true, desc = "ویرایش", for = "unix" } ]
open = [ { run = 'xdg-open %s1', desc = "باز کردن با سیستم", for = "unix" } ]
play = [ { run = 'mpv %s', orphan = true, desc = "پخش", for = "unix" } ]
extract = [ { run = 'ya pub extract --list %s', desc = "استخراج", for = "unix" } ]
[open]
prepend_rules = [
{ mime = "text/*", use = [ "edit", "open" ] },
{ mime = "image/*", use = [ "open" ] },
{ mime = "video/*", use = [ "play", "open" ] },
{ mime = "audio/*", use = [ "play" ] },
{ url = "*.{zip,tar,gz,xz,bz2,7z,rar}", use = [ "extract", "open" ] },
]
[input]
cursor_blink = true
[which]
sort_by = "none"
چند تا ترفند مدیریت کانفیگ
پروفایل دوم برای تست
# یه کانفیگ جدا بدون دست زدن به اصلی
YAZI_CONFIG_HOME=~/.config/yazi-test yazi
وقتی کانفیگ خراب میشه
# لاگ رو روشن کن و اجرا کن
YAZI_LOG=debug yazi
# بعد از خروج، لاگ رو بخون
less ~/.local/state/yazi/yazi.log
prepend_keymap = [...] بنویسی و هم [[mgr.prepend_keymap]] برای یه بخش؛ یکی از دو سبک رو انتخاب کن.cd ~/.config/yazi
git init && git add . && git commit -m "کانفیگ یازی من"
ya pkg install بزنی تا پلاگینها هم برگردن.منبع برای بررسی جزئیات و تغییرات نسخهها: تنظیمات پیشفرض نسخهی 26.9.1.