🚀ترفندهای کاربردی Yazi برای مدیریت فایل
پرش به ریشهی گیت، کلیپبورد سیستم، smart tab، wallpaper و بهینهسازی.
این فصل یه جعبهابزار از ترفندهاییه که کاربران حرفهای یازی روزانه استفاده میکنن. هر کدوم رو مستقل میتونی برداری و به کانفیگت اضافه کنی.
۱. کپی کردن فایلها توی کلیپبورد سیستم موقع yank
y بهصورت پیشفرض فایلها رو برای paste داخل Yazi نگه میداره. برای برنامههایی کهtext/uri-list میپذیرن، میتونی URI فایلها رو هم به کلیپبورد بفرستی. این مثال به Python 3 و wl-clipboard نیاز داره و برای فایلهای محلیه؛ پشتیبانی برنامهی مقصد فرق میکنه.
[[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" بررسی کن.
۲. پرش به ریشهی مخزن گیت
[[mgr.prepend_keymap]]
on = [ "g", "r" ]
run = 'shell -- root=$(git rev-parse --show-toplevel) && ya emit cd "$root"'
desc = "ریشهی مخزن گیت"
۳. باز کردن lazygit توی همون پوشه
# ابتدا موجود بودن بسته رو در مخزنهای فعال بررسی کن
dnf info lazygit
# فقط در صورت پیدا شدن بسته:
sudo dnf install lazygit
[[mgr.prepend_keymap]]
on = [ "g", "i" ]
run = 'shell "lazygit" --block'
desc = "باز کردن lazygit"
۴. فشردهسازی سریع انتخابها
بعد از نصب zip یا ouch، دستور رو توی کادر ورودی باز کن تا اسم آرشیو و فایلها رو قبل از اجرا ببینی. برای جلوگیری از تغییر آرشیو قبلی، اسم تازهای انتخاب کن.
[[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 رو در این دستور استفاده نکن.۵. حرکت در پوشهی والد بدون ترک پوشهی فعلی
--- @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 }
[[mgr.prepend_keymap]]
on = "<A-k>"
run = "plugin parent-arrow -1"
[[mgr.prepend_keymap]]
on = "<A-j>"
run = "plugin parent-arrow 1"
۶. ارسال فایلهای انتخابشده با ایمیل
[[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 رو نشون میده.
[[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استفاده کن. پاککردن مرتب کش راه افزایش سرعت نیست و پیشنمایشها باید دوباره ساخته بشن.
۹. باز کردن ترمینال گرافیکی در پوشهی فعلی
[[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 رو ببین و متن تأیید رو بخون. میانبر حذف فوری کل سطل نساز؛ پاککردن نهایی قابل برگشت از سطل نیست.