🩺رفع مشکلات Yazi؛ فونت، پیشنمایش و تنظیمات
آیکونهای خراب، عکس نمایش داده نمیشه، trash کار نمیکنه و…
این راهنما چند علت رایج رو بررسی میکنه؛ یه نشونه ممکنه چند دلیل داشته باشه. اول نسخهی yazi و ya رو بررسی کن. نمونهها با مستندات نسخهی 26.9.1 بازبینی شدن. روی هر سؤال بزن تا راه بررسی باز بشه.
بهجای آیکونها مربع خالی یا علامت سؤال میبینم
معمولاً فونت ترمینال glyph لازم رو نداره یا فونت درست انتخاب نشده. یه فونت از سایت Nerd Fontsبگیر، فایلهای فونت رو در ~/.local/share/fonts/ قرار بده و اجرا کن:
fc-cache -f
fc-list | grep -i nerd
بعدش ترمینال ⟵ تنظیمات ⟵ فونت سفارشی ⟵ JetBrainsMono Nerd Font. ترمینال رو کامل ببند و باز کن.
پیشنمایش تصویر کار نمیکنه یا فقط یه مستطیل خالی میبینم
- اول پروتکل تصویر و آداپتر انتخابشده رو در خروجی
ya envبررسی کن. برای مقایسه میتونی از Kitty استفاده کنی:sudo dnf install kitty -yو اجرای یازی داخل kitty. - اگه توی tmux هستی، اول بیرون از tmux تست کن. پشتیبانی نسخهی tmux و ترمینال مهمه؛ برای عبور پروتکل Kitty معمولاً این گزینه لازم میشه:
set -gq allow-passthrough all. - کش خراب:
ya cache clearبزن و دوباره امتحان کن. - برای ویدیو
ffmpegو برای PDFpoppler-utilsباید نصب باشن.
ya env # اطلاعات محیط، نسخه و آداپتر تصویر
کلید d فایل رو حذف نمیکنه یا خطا میده
پیام خطا رو بخون: مجوز پوشه، فقطخواندنی بودن mount و پشتیبانی سطل زباله روی همون فایلسیستم مهمن. Yazi برای حذف عادی به نصب trash-cli وابسته نیست؛ اون ابزار برای مدیریت سطل از شل جداگانه مفیده.
اگه فایل روی فلش یا پارتیشن دیگه باشه، ممکنه ساخت سطل زباله ممکن نباشه. از خطای d مستقیم به D نرو: دومی حذف دائمیه. اول یه کپی پشتیبان بگیر و وضعیت mount و مجوزها رو بررسی کن.
کلید c ⇒ c مسیر رو کپی میکنه ولی هیچجا پیست نمیشه
ابزار کلیپبورد نصب نیست. اول نوع نشست رو چک کن و فقط ابزار مربوط به همون نشست رو نصب کن:
echo $XDG_SESSION_TYPE # wayland یا x11
sudo dnf install wl-clipboard -y # برای wayland
sudo dnf install xclip xsel -y # برای x11
با q از یازی بیرون میام ولی شل توی پوشهی قبلی میمونه
این رفتار طبیعیه؛ باید تابع y رو نصب کنی. برو فصل اولین اجرا و اون تابع رو ته ~/.bashrc بذار، بعد source ~/.bashrc بزن و از این به بعد بهجای yazi بنویس y.
یازی بالا نمیاد و ارور TOML میده
# بدون تغییر کانفیگ اصلی، با یه پوشهی خالی آزمایش کن
yazi_test_config=$(mktemp -d)
YAZI_CONFIG_HOME="$yazi_test_config" yazi
# اگه این اجرا درست بود، فایلهای کانفیگ اصلی رو جدا بررسی کن
بعد فایلهای کانفیگ اصلی رو یکییکی در پوشهی آزمایشی کپی کن تا علت روشن بشه. رایجترین اشتباهها: قاطی کردن سبک prepend_keymap = [...] با [[mgr.prepend_keymap]]، کامای اضافه، و استفاده از اسم قدیمی [manager] بهجای [mgr].
پلاگین نصب کردم ولی کار نمیکنه
- چک کن واقعاً نصب شده:
ya pkg list - بعضی پلاگینها باید توی
init.luaباrequire("name"):setup()راهاندازی بشن. - نسخهی
yaوyaziباید یکی باشه:yazi --version && ya --version - لاگ رو ببین:
YAZI_LOG=debug yaziبعد مسیر لاگ رو ازya envپیدا کن؛ در نصب معمول~/.local/state/yazi/yazi.logهست
جستوجو با s کار نمیکنه
اول بررسی کن fd و rg در $PATH موجود باشن. نبود ابزار یکی از علتهای رایجه. روی فدورا:
sudo dnf install fd-find ripgrep -y
command -v fd rg
فارسی و راستبهچپ توی اسم فایلها بههم میریزه
رندر متن ترکیبی فارسی و لاتین به ترمینال، فونت و برنامه بستگی داره. برای جداکردن علت:
- همون اسم فایل رو در یه ترمینال دیگه و با یه فونت فارسی مناسب مقایسه کن؛ برتری یه ترمینال برای همهی ترکیبهای متن تضمینشده نیست.
- مطمئن شو locale درسته:
echo $LANGباید چیزی مثلen_US.UTF-8یاfa_IR.UTF-8باشه. - در اسکریپتها مسیرها رو درست quote کن؛ مشکل نمایش لزوماً به معنی خراب شدن نام ذخیرهشدهی فایل نیست.
سرعت یازی روی پوشههای خیلی بزرگ کم میشه
# پیشنمایش تصویر رو محدود کن
[plugin]
prepend_preloaders = [ { mime = "image/*", run = "noop" } ]
[tasks]
preload_workers = 2
[mgr]
linemode = "none" # محاسبهی اطلاعات اضافه رو خاموش کن
برای mime-ext، نصب و setup رو از راهنمای پلاگین دنبال کن. این روش دقت تشخیص MIME رو با سرعت معاوضه میکنه.
روی Fedora Silverblue نصب نمیشه
یکی از راهها استفاده از toolbox هست:
toolbox create --container yazi-box
toolbox enter yazi-box
sudo dnf install yazi
# بعد از exit، در شل میزبان:
toolbox run --container yazi-box yazi
کانتینر به home دسترسی داره، ولی openerهای گرافیکی و مسیر بعضی mountها ممکنه مثل میزبان کار نکنن. راه جایگزین، باینری رسمی سازگار با معماری سیستم در ~/.local/bin هست. اگه بسته در مخزن کانتینر پیدا نشد، روش نصب رسمی رو ببین.
میخوام همهچی رو ریست کنم و از اول شروع کنم
# اول Yazi رو ببند؛ این نمونه برای Bash هست
yazi_backup_dir=$(mktemp -d "$HOME/yazi-backup.XXXXXX")
yazi_config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/yazi"
if [ -d "$yazi_config_dir" ]; then
mv -- "$yazi_config_dir" "$yazi_backup_dir/config"
fi
printf 'Backup: %s\n' "$yazi_backup_dir"
yazi
این کار تنظیمات و پلاگینها رو پشتیبان میگیره؛ فایلهای شخصی و state رو پاک نمیکنه. اگه YAZI_CONFIG_HOME سفارشی داری، مسیر همون پوشه رو جایگزین کن. برای برگشت، Yazi رو ببند و پوشهی پشتیبان config رو به مسیر قبلی برگردون.