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

🔗اتصال Yazi به شل، Neovim و محیط فدورا

wrapper شل، یازی داخل Neovim، فایل‌چوزر سیستم و systemd و SELinux.

یازی وقتی واقعاً می‌درخشه که با بقیه‌ی ابزارهایی که هر روز استفاده میکنی ترکیب بشه. توی این فصل چند تا ادغام کاربردی رو با هم راه می‌ندازیم.

۱. یازی داخل Neovim

با افزونه‌ی mikavilpas/yazi.nvim میتونی این ادغام رو بسازی. نمونه برای lazy.nvim:

~/.config/nvim/lua/plugins/yazi.lua
lua

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

~/.tmux.conf
bash

bind-key -n M-y display-popup -E -w 90% -h 90% "yazi"

حالا هر جای tmux باشی، Alt + y یه پنجره‌ی شناور یازی باز می‌کنه. برای اینکه رنگ‌ها درست باشه:

~/.tmux.conf
bash

set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
# برای پیش‌نمایش تصویر در tmux (پروتکل kitty):
set -gq allow-passthrough all
set -g visual-activity off
⚠️tmux و تصویر
پیش‌نمایش تصویر داخل tmux همیشه ۱۰۰٪ کار نمی‌کنه. اگه عکس نمی‌بینی، اول بیرون از tmux تست کن تا بفهمی مشکل از tmux ــه یا از ترمینال.

۴. یازی به‌عنوان فایل‌چوزر سیستم روی فدورا

می‌تونی کاری کنی وقتی توی فایرفاکس «Upload File» می‌زنی، به‌جای پنجره‌ی گنوم، یازی باز بشه. برای این کار از xdg-desktop-portal-termfilechooser استفاده می‌شه:

نصب بسته به‌تنهایی کافی نیست؛ باید اسکریپت Yazi، برنامه‌ی ترمینال و backend مربوط به FileChooser در تنظیمات portal انتخاب بشن. مسیرها و روش راه‌اندازی در GNOME، KDE و مدیرپنجره‌های مستقل فرق دارن. از راهنمای نصب و پیکربندی خود پروژهاستفاده کن و قبل از تغییر، فایل تنظیمات فعلی portal رو پشتیبان بگیر تا بتونی برش گردونی.

۵. مدیریت فلش و هارد اکسترنال

terminal
bash

ya pkg add yazi-rs/plugins:mount
keymap.toml
toml

[[mgr.prepend_keymap]]
on   = "M"
run  = "plugin mount"
desc = "مدیریت دستگاه‌ها"

روی فدورا دستگاه‌ها معمولاً خودکار توی /run/media/$USER/ سوار می‌شن. یه میان‌بر مستقیم هم بساز:

keymap.toml
toml

[[mgr.prepend_keymap]]
on   = [ "g", "u" ]
run  = "cd /run/media/$USER"
desc = "دستگاه‌های متصل"

۶. کار با فایل‌های ریموت (SFTP)

نسخه‌های جدید یازی از فایل‌سیستم مجازی پشتیبانی می‌کنن. توی ~/.config/yazi/vfs.toml:

~/.config/yazi/vfs.toml
toml

[sftp.my-server]
host = "192.168.1.50"
user = "kaveh"
port = 22

آدرس و کاربر بالا نمونه هستن. با yazi sftp://my-server وصل شو؛ احراز هویت پیش‌فرض از SSH agent انجام میشه و ssh-add -l کلیدهای بارگذاری‌شده رو نشون میده. راه جایگزین برای نسخه‌های قدیمی‌تر، mount با sshfs هست؛ برای اون هم آدرس واقعی خودت رو بذار:

terminal
bash

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 رو چک کن.

۸. اجرای یازی با دسترسی روت (با احتیاط)

برای ویرایش یه فایل سیستمی، معمولاً لازم نیست کل فایل‌منیجر با دسترسی روت اجرا بشه:

terminal
bash

sudoedit /etc/hosts
🔥دسترسی روت و پلاگین‌ها
اجرای Yazi با sudo، به openerها، دستورهای شل و پلاگین‌های بارگذاری‌شده هم دسترسی روت میده. کانفیگ روزمره و پلاگین‌های دانلودشده رو با sudo -E به روت منتقل نکن. حذف دائمی با D حتی بدون روت هم به سطل زباله نمیره؛ قبل از عملیات روی فایل سیستمی پشتیبان بگیر.

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