فهرست سریع فصل‌ها
مرجعفصل 18 از 20⏱ حدود 10 دقیقه

🩺رفع مشکلات Yazi؛ فونت، پیش‌نمایش و تنظیمات

آیکون‌های خراب، عکس نمایش داده نمی‌شه، trash کار نمی‌کنه و…

این راهنما چند علت رایج رو بررسی میکنه؛ یه نشونه ممکنه چند دلیل داشته باشه. اول نسخه‌ی yazi و ya رو بررسی کن. نمونه‌ها با مستندات نسخه‌ی 26.9.1 بازبینی شدن. روی هر سؤال بزن تا راه بررسی باز بشه.

به‌جای آیکون‌ها مربع خالی یا علامت سؤال می‌بینم

معمولاً فونت ترمینال glyph لازم رو نداره یا فونت درست انتخاب نشده. یه فونت از سایت Nerd Fontsبگیر، فایل‌های فونت رو در ~/.local/share/fonts/ قرار بده و اجرا کن:

terminal
bash

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 و برای PDF poppler-utils باید نصب باشن.
terminal
bash

ya env   # اطلاعات محیط، نسخه و آداپتر تصویر
کلید d فایل رو حذف نمی‌کنه یا خطا می‌ده

پیام خطا رو بخون: مجوز پوشه، فقط‌خواندنی بودن mount و پشتیبانی سطل زباله روی همون فایل‌سیستم مهمن. Yazi برای حذف عادی به نصب trash-cli وابسته نیست؛ اون ابزار برای مدیریت سطل از شل جداگانه مفیده.

اگه فایل روی فلش یا پارتیشن دیگه باشه، ممکنه ساخت سطل زباله ممکن نباشه. از خطای d مستقیم به D نرو: دومی حذف دائمیه. اول یه کپی پشتیبان بگیر و وضعیت mount و مجوزها رو بررسی کن.

کلید c ⇒ c مسیر رو کپی می‌کنه ولی هیچ‌جا پیست نمی‌شه

ابزار کلیپ‌بورد نصب نیست. اول نوع نشست رو چک کن و فقط ابزار مربوط به همون نشست رو نصب کن:

terminal
bash

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 می‌ده
terminal
bash

# بدون تغییر کانفیگ اصلی، با یه پوشه‌ی خالی آزمایش کن
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 موجود باشن. نبود ابزار یکی از علت‌های رایجه. روی فدورا:

terminal
bash

sudo dnf install fd-find ripgrep -y
command -v fd rg
فارسی و راست‌به‌چپ توی اسم فایل‌ها به‌هم می‌ریزه

رندر متن ترکیبی فارسی و لاتین به ترمینال، فونت و برنامه بستگی داره. برای جداکردن علت:

  • همون اسم فایل رو در یه ترمینال دیگه و با یه فونت فارسی مناسب مقایسه کن؛ برتری یه ترمینال برای همه‌ی ترکیب‌های متن تضمین‌شده نیست.
  • مطمئن شو locale درسته: echo $LANG باید چیزی مثل en_US.UTF-8 یا fa_IR.UTF-8 باشه.
  • در اسکریپت‌ها مسیرها رو درست quote کن؛ مشکل نمایش لزوماً به معنی خراب شدن نام ذخیره‌شده‌ی فایل نیست.
سرعت یازی روی پوشه‌های خیلی بزرگ کم می‌شه
yazi.toml
toml

# پیش‌نمایش تصویر رو محدود کن
[plugin]
prepend_preloaders = [ { mime = "image/*", run = "noop" } ]

[tasks]
preload_workers = 2

[mgr]
linemode = "none"   # محاسبه‌ی اطلاعات اضافه رو خاموش کن

برای mime-ext، نصب و setup رو از راهنمای پلاگین دنبال کن. این روش دقت تشخیص MIME رو با سرعت معاوضه میکنه.

روی Fedora Silverblue نصب نمی‌شه

یکی از راه‌ها استفاده از toolbox هست:

terminal
bash

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 هست. اگه بسته در مخزن کانتینر پیدا نشد، روش نصب رسمی رو ببین.

می‌خوام همه‌چی رو ریست کنم و از اول شروع کنم
terminal
bash

# اول 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 رو به مسیر قبلی برگردون.

آموزش کار با Yazi برای توزیع‌های مختلف لینوکس کاربرد داره؛ مثال‌های نصب و تنظیم محیط با اولویت کاربری نوشته شدن که فدورا رو با تنظیمات پیش‌فرض نصب کرده. دستور نصب بسته‌ها و ابزارهای جانبی در توزیع‌های دیگه ممکنه متفاوت باشه.