fzf چیست و چطور جستجوی خط فرمان را تعاملی می‌کند
معرفی ابزار

fzf چیست و چطور جستجوی خط فرمان را تعاملی می‌کند

ابزار fzf امکان فیلتر کردن سریع و تعاملی ورودی‌ها را در ترمینال فراهم می‌کند و فرآیند پیدا کردن فایل‌ها یا تاریخچه دستورها را سرعت می‌بخشد.

تحریریه‌ی دینا کد
نویسنده
۴ دقیقه مطالعه۰ بازدید
اشتراک گذاری۰
فهرست مطالب
  1. ۱ابزار fzf چه می‌کند
  2. ۲چه کسانی به fzf نیاز دارند
  3. ۳روش نصب از مخزن رسمی
  4. ۴اجرای اولین فرمان و رفتار ابزار
  5. ۵چه فرآیندهایی با fzf دگرگون می‌شوند
  6. ۶محدودیت‌های واقعی fzf

اگر ساعت‌های زیادی از روز را در خط فرمان سپری می‌کنید، حتماً بارها پیش آمده که نام یک فایل، متغیر یا دستور قدیمی در خاطرتان نباشد و ناچار شوید دستورهای تکراری مثل find یا grep را پشت سر هم بنویسید. ابزار fzf دقیقاً برای حل همین سردرگمی طراحی شده است.

ابزار fzf چه می‌کند

ابزار fzf یک جست‌وجوگر فازی و تعاملی همه‌منظوره در خط فرمان است. واژه فازی به این معناست که برای پیدا کردن یک عبارت نیازی نیست املای دقیق یا پیوسته آن را بنویسید؛ اگر حروف را با فاصله یا به صورت تقریبی وارد کنید، fzf نزدیک‌ترین نتیجه‌ها را به صورت بلادرنگ فیلتر می‌کند و نمایش می‌دهد. این ابزار به عنوان یک فیلتر یونیکسی عمل می‌کند، یعنی هر ورودی استانداردی را دریافت می‌کند، یک رابط بصری برای انتخاب در اختیارتان می‌گذارد و در نهایت انتخاب شما را به خروجی استاندارد تحویل می‌دهد.

چه کسانی به fzf نیاز دارند

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

در تیم‌هایی که پروژه‌های پرشاخه دارند، ترکیب fzf با ابزارهای مدیریت نسخه بسیار رایج است. برای تسلط عمیق بر مفاهیم شاخه‌بندی و رهگیری کدها، دوره گیت و گیت‌هاب تعاملی مسیر یادگیری را شفاف‌تر می‌کند.

روش نصب از مخزن رسمی

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

در سیستم‌عامل مک با Homebrew:

bashbrew install fzf

در توزیع‌های مبتنی بر دبیان و اوبونتو:

bashsudo apt install fzf

همچنین با شبیه‌سازی مستقیم مخزن گیت‌هاب پروژه می‌توانید نسخه‌ای مستقل به همراه میان‌برهای پوسته دریافت کنید:

bashgit clone --depth ۱ https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

اجرای اولین فرمان و رفتار ابزار

پس از نصب، کافی است در هر پوشه‌ای نام ابزار را تایپ کنید:

bashfzf

بلافاصله تمام فایل‌های دایرکتوری فعلی در قالب یک لیست پیمایشی عمودی نمایان می‌شوند. با نوشتن چند حرف دلخواه، گزینه‌ها بلافاصله پالایش می‌شوند. با کلیدهای جهت‌نما یا کلیدهای حرکتی می‌توانید روی گزینه مورد نظر بروید و با فشردن Enter، نام آن فایل چاپ می‌شود.

قدرت واقعی fzf در ترکیب با لوله‌ها نمایان می‌شود. به عنوان نمونه برای باز کردن یک فایل در ویرایشگر nano:

bashnano $(fzf)

یا برای جست‌وجو در لیست پردازش‌های در حال اجرا:

bashps aux | fzf

چه فرآیندهایی با fzf دگرگون می‌شوند

اولین تغییر، نحوه استفاده از تاریخچه دستورها است. کلید ترکیبی Ctrl+R در پوسته‌های zsh یا bash با fzf بازنویسی می‌شود؛ بنابراین به جای جست‌وجوی معکوس سنتی، فهرستی کامل و فازی از کارهای پیشین باز می‌شود.

دومین دگرگونی، تعامل با فایل‌ها و پوشه‌ها است. با استفاده از کلید ترکیبی Alt+C می‌توانید سریع‌تر از هر فرمان دیگری وارد پوشه دلخواه شوید. همچنین میان‌بر Ctrl+T امکان درج مسیر هر فایلی را مستقیم در میانه دستور فعلی فراهم می‌کند.

محدودیت‌های واقعی fzf

ابزار fzf به خودی خود درون محتوای فایل‌ها را جست‌وجو نمی‌کند؛ این ابزار فقط نام‌ها و رشته‌های ورودی را پردازش می‌کند. برای خواندن داخل متن‌ها باید آن را با ابزارهایی مانند ripgrep ترکیب کنید. علاوه بر این، در دایرکتوری‌های بسیار بزرگ با میلیون‌ها فایل ممکن است مصرف حافظه اندکی افزایش یابد، هرچند بهینه‌سازی‌های انجام‌شده در این ابزار سرعت اجرا را حتی در کاتالوگ‌های سنگین در سطح بسیار بالایی نگه می‌دارد.

تحریریه‌ی دینا کد
نویسنده

نظرها

اولین نفری باشید که نظر می‌دهد
برای ثبت نظر وارد شوید

سؤالتان را بپرسید یا تجربه‌تان را بنویسید تا نویسنده‌ی مطلب پاسخ بدهد.

مطالب مرتبط

از همین دسته
ابزار ripgrep چیست و چرا جستجوی فایل‌ها را دگرگون کرد
معرفی ابزار

ابزار ripgrep چیست و چرا جستجوی فایل‌ها را دگرگون کرد

ابزار ripgrep با تکیه بر سرعت موتور زبان راست و نادیده گرفتن خودکار فایل‌های پنهان، جستجوی الگوهای متنی در پروژه‌های بزرگ را چند برابر سریع‌تر از grep سنتی می‌کند.

تحریریه‌ی دینا کد۴ دقیقه