🔗اتصال Yazi به شل، Neovim و محیط فدورا
wrapper شل، یازی داخل Neovim، فایلچوزر سیستم و systemd و SELinux.
یازی وقتی واقعاً میدرخشه که با بقیهی ابزارهایی که هر روز استفاده میکنی ترکیب بشه. توی این فصل چند تا ادغام کاربردی رو با هم راه میندازیم.
۱. یازی داخل Neovim
با افزونهی mikavilpas/yazi.nvim میتونی این ادغام رو بسازی. نمونه برای lazy.nvim:
return {
"mikavilpas/yazi.nvim",
version = "*",
event = "VeryLazy",
dependencies = { { "nvim-lua/plenary.nvim", lazy = true } },
keys = {
{ "<leader>-", "<cmd>Yazi<cr>", desc = "باز کردن یازی روی فایل فعلی" },
{ "<leader>cw", "<cmd>Yazi cwd<cr>", desc = "یازی در پوشهی کاری" },
{ "<c-up>", "<cmd>Yazi toggle<cr>", desc = "برگشت به آخرین جلسهی یازی" },
},
opts = {
open_for_directories = false,
keymaps = { show_help = "<f1>" },
},
}
حالا داخل نئوویم <leader>- بزنی، یازی توی یه پنجرهی شناور باز میشه و هر فایلی که انتخاب کنی توی بافر باز میشه. برای بررسی نصب، :checkhealth yazi رو اجرا کن؛ نیازمندیهای نسخه رو از README افزونه ببین.
۲. یازی بهعنوان فایلپیکر در Helix
Yazi با گزینهی --chooser-file مسیر فایلهای انتخابشده رو در یه فایل مینویسه. نمونهی رسمی ادغام با Helixرو با نسخهی Helix خودت تطبیق بده. برای فایل موقت از مسیر خصوصی و یکتای هر نشست استفاده کن؛ یه نام ثابت توی /tmp بین چند نشست یا چند کاربر مشترک میشه.
۳. یازی توی پاپآپ tmux
bind-key -n M-y display-popup -E -w 90% -h 90% "yazi"
حالا هر جای tmux باشی، Alt + y یه پنجرهی شناور یازی باز میکنه. برای اینکه رنگها درست باشه:
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
# برای پیشنمایش تصویر در tmux (پروتکل kitty):
set -gq allow-passthrough all
set -g visual-activity off
۴. یازی بهعنوان فایلچوزر سیستم روی فدورا
میتونی کاری کنی وقتی توی فایرفاکس «Upload File» میزنی، بهجای پنجرهی گنوم، یازی باز بشه. برای این کار از xdg-desktop-portal-termfilechooser استفاده میشه:
نصب بسته بهتنهایی کافی نیست؛ باید اسکریپت Yazi، برنامهی ترمینال و backend مربوط به FileChooser در تنظیمات portal انتخاب بشن. مسیرها و روش راهاندازی در GNOME، KDE و مدیرپنجرههای مستقل فرق دارن. از راهنمای نصب و پیکربندی خود پروژهاستفاده کن و قبل از تغییر، فایل تنظیمات فعلی portal رو پشتیبان بگیر تا بتونی برش گردونی.
۵. مدیریت فلش و هارد اکسترنال
ya pkg add yazi-rs/plugins:mount
[[mgr.prepend_keymap]]
on = "M"
run = "plugin mount"
desc = "مدیریت دستگاهها"
روی فدورا دستگاهها معمولاً خودکار توی /run/media/$USER/ سوار میشن. یه میانبر مستقیم هم بساز:
[[mgr.prepend_keymap]]
on = [ "g", "u" ]
run = "cd /run/media/$USER"
desc = "دستگاههای متصل"
۶. کار با فایلهای ریموت (SFTP)
نسخههای جدید یازی از فایلسیستم مجازی پشتیبانی میکنن. توی ~/.config/yazi/vfs.toml:
[sftp.my-server]
host = "192.168.1.50"
user = "kaveh"
port = 22
آدرس و کاربر بالا نمونه هستن. با yazi sftp://my-server وصل شو؛ احراز هویت پیشفرض از SSH agent انجام میشه و ssh-add -l کلیدهای بارگذاریشده رو نشون میده. راه جایگزین برای نسخههای قدیمیتر، mount با sshfs هست؛ برای اون هم آدرس واقعی خودت رو بذار:
sudo dnf install fuse-sshfs -y
mkdir -p ~/mnt/server
sshfs kaveh@192.168.1.50:/home/kaveh ~/mnt/server
yazi ~/mnt/server
# بعد از پایان کار و خروج از پوشه:
fusermount3 -u ~/mnt/server
۷. نکات SELinux روی فدورا
در نصب معمول فدورا SELinux فعاله. خطای مجوز رو بدون بررسی به SELinux نسبت نده؛ این چند ابزار برای تشخیص کمک میکنن:
- اگه فایلی رو از
/homeبه/var/wwwکپی کنی، برچسب امنیتیش ممکنه اشتباه بمونه. بعدش برچسب مورد انتظار همون فایل رو باmatchpathcon /path/to/fileبررسی کن و در صورت نیاز فقط روی مسیر موردنظرsudo restorecon -v /path/to/fileاجرا کن. - برای دیدن برچسبها توی یازی، یه linemode سفارشی بساز یا از کلید
;استفاده کن:ls -Z %h. - اگه دستوری بیدلیل شکست خورد،
sudo ausearch -m avc -ts recentرو چک کن.
۸. اجرای یازی با دسترسی روت (با احتیاط)
برای ویرایش یه فایل سیستمی، معمولاً لازم نیست کل فایلمنیجر با دسترسی روت اجرا بشه:
sudoedit /etc/hosts
sudo -E به روت منتقل نکن. حذف دائمی با D حتی بدون روت هم به سطل زباله نمیره؛ قبل از عملیات روی فایل سیستمی پشتیبان بگیر.