فهرست سریع فصل‌ها
پیشرفتهفصل 16 از 20⏱ حدود 13 دقیقه

🚀ترفندهای کاربردی Yazi برای مدیریت فایل

پرش به ریشه‌ی گیت، کلیپ‌بورد سیستم، smart tab، wallpaper و بهینه‌سازی.

این فصل یه جعبه‌ابزار از ترفندهاییه که کاربران حرفه‌ای یازی روزانه استفاده می‌کنن. هر کدوم رو مستقل می‌تونی برداری و به کانفیگت اضافه کنی.

۱. کپی کردن فایل‌ها توی کلیپ‌بورد سیستم موقع yank

y به‌صورت پیش‌فرض فایل‌ها رو برای paste داخل Yazi نگه میداره. برای برنامه‌هایی کهtext/uri-list میپذیرن، میتونی URI فایل‌ها رو هم به کلیپ‌بورد بفرستی. این مثال به Python 3 و wl-clipboard نیاز داره و برای فایل‌های محلیه؛ پشتیبانی برنامه‌ی مقصد فرق میکنه.

keymap.toml — Wayland
toml

[[mgr.prepend_keymap]]
on = "y"
run = [
	'''shell -- python3 -c 'import pathlib,sys; print("\r\n".join(pathlib.Path(p).absolute().as_uri() for p in sys.argv[1:]))' %s | wl-copy --type text/uri-list''',
	"yank",
]
desc = "کپی به یازی و کلیپ‌بورد سیستم"

استفاده از as_uri() باعث میشه فاصله، # و نویسه‌های فارسی توی مسیر درست encode بشن. در X11، بخش بعد از pipe رو با xclip -selection clipboard -t text/uri-list -i عوض کن. نوع نشست رو با echo "$XDG_SESSION_TYPE" بررسی کن.

۲. پرش به ریشه‌ی مخزن گیت

keymap.toml
toml

[[mgr.prepend_keymap]]
on   = [ "g", "r" ]
run  = 'shell -- root=$(git rev-parse --show-toplevel) && ya emit cd "$root"'
desc = "ریشه‌ی مخزن گیت"

۳. باز کردن lazygit توی همون پوشه

terminal
bash

# ابتدا موجود بودن بسته رو در مخزن‌های فعال بررسی کن
dnf info lazygit
# فقط در صورت پیدا شدن بسته:
sudo dnf install lazygit
keymap.toml
toml

[[mgr.prepend_keymap]]
on   = [ "g", "i" ]
run  = 'shell "lazygit" --block'
desc = "باز کردن lazygit"

۴. فشرده‌سازی سریع انتخاب‌ها

بعد از نصب zip یا ouch، دستور رو توی کادر ورودی باز کن تا اسم آرشیو و فایل‌ها رو قبل از اجرا ببینی. برای جلوگیری از تغییر آرشیو قبلی، اسم تازه‌ای انتخاب کن.

keymap.toml
toml

[[mgr.prepend_keymap]]
on   = [ "c", "z" ]
run  = 'shell "zip -r archive.zip %s" --block --interactive'
desc = "ساخت آرشیو ZIP"

[[mgr.prepend_keymap]]
on   = [ "c", "o" ]
run  = 'shell "ouch compress %s archive.tar.zst" --block --interactive'
desc = "فشرده‌سازی با ouch"
💡جای مکان‌نما در ورودی
گزینه‌ی --cursor جای اولیه‌ی مکان‌نما رو مشخص میکنه؛ مثلاًshell 'zip -r .zip %s' --block --interactive --cursor=7 قبل از پسوند می‌ایسته. گزینه‌ی قدیمی --confirm رو در این دستور استفاده نکن.

۵. حرکت در پوشه‌ی والد بدون ترک پوشه‌ی فعلی

~/.config/yazi/plugins/parent-arrow.yazi/main.lua
lua

--- @sync entry
local function entry(_, job)
	local parent = cx.active.parent
	if not parent then return end
	local offset = tonumber(job.args[1])
	if not offset then return end
	local target = parent.files[parent.cursor + 1 + offset]
	if target and target.cha.is_dir then
		ya.emit("cd", { target.url })
	end
end
return { entry = entry }
keymap.toml
toml

[[mgr.prepend_keymap]]
on  = "<A-k>"
run = "plugin parent-arrow -1"

[[mgr.prepend_keymap]]
on  = "<A-j>"
run = "plugin parent-arrow 1"

۶. ارسال فایل‌های انتخاب‌شده با ایمیل

keymap.toml
toml

[[mgr.prepend_keymap]]
on  = [ "g", "e" ]
run = '''shell --
	paths=$(for p in %s; do echo "$p"; done | paste -s -d,)
	thunderbird -compose "attachment='$paths'"
'''
desc = "ارسال با Thunderbird"

این مثال پنجره‌ی نوشتن ایمیل رو باز میکنه و چیزی رو خودکار ارسال نمیکنه. برای اسم فایل‌هایی که ویرگول یا نقل‌قول دارن، پیوست‌ها رو از داخل Thunderbird اضافه کن. کلید Ctrl+m در بعضی ترمینال‌ها با Enter یکیه؛ اینجا از دنباله‌ی g ⇒ e استفاده کردیم.

۷. کشیدن و رها کردن به برنامه‌های گرافیکی

ابزار موردنظر، dragon ساخته‌ی mwhهست؛ با پخش‌کننده‌ی Dragon در KDE فرق داره. طبق راهنمای همین پروژه نصبش کن و بعد مطمئن شوdragon --help گزینه‌های drag and drop رو نشون میده.

keymap.toml
toml

[[mgr.prepend_keymap]]
on   = "<C-n>"
run  = "shell -- dragon -x -i -T %s"
desc = "کشیدن فایل‌ها به برنامه‌ی گرافیکی"

۸. یازی رو حتی سریع‌تر کن

  • اگه پیش‌نمایش تصویر لازم نداری، previewer و preloader تصویر رو noop کن؛ این کار خوندن و decode کردن تصاویر رو کم میکنه.
  • روی مسیرهای شبکه‌ای (NFS، SSHFS) کلاً پیش‌بارگذاری رو خاموش کن: { url = "/mnt/nas/**", run = "noop" }
  • پلاگین mime-ext با تشخیص از پسوند میتونه سریع‌تر باشه، ولی دقت کمتری داره؛ برای فعال‌سازی فقط نصب کافی نیست و باید README همون نسخه رو دنبال کنی.
  • روی ترمینال سریع، کم‌کردن image_delay میتونه تأخیر نمایش رو کمتر کنه؛ مقدار 0 رو با مصرف منابع سیستم خودت بسنج.
  • برای کش خراب از ya cache clear استفاده کن. پاک‌کردن مرتب کش راه افزایش سرعت نیست و پیش‌نمایش‌ها باید دوباره ساخته بشن.

۹. باز کردن ترمینال گرافیکی در پوشه‌ی فعلی

keymap.toml
toml

[[mgr.prepend_keymap]]
on   = [ "g", "x" ]
run  = 'shell --orphan -- kgx --working-directory="$PWD"'
desc = "ترمینال گنوم در همین پوشه"

بسته به برنامه‌ای که نصب کردی، نام باینری میتونه kgx (GNOME Console) یا ptyxis ــه؛ برای KDE هم konsole --workdir "$PWD".

۱۰. کار با سطل زباله‌ی داخلی

در Yazi 26.9.1، دنباله‌ی g ⇒ t از قبل به plugin trash وصله. این مسیر فایل‌های حذف‌شده رو همراه با اطلاعات سطل زباله نمایش میده. برای انتخاب روش بازگردانی یا پاک‌کردن، منوی O رو ببین و متن تأیید رو بخون. میان‌بر حذف فوری کل سطل نساز؛ پاک‌کردن نهایی قابل برگشت از سطل نیست.

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