آذرسیس

نحوه یافتن و جایگزینی یک دستور در vim

در اکثر توزیع های لینوکس، ویرایشگر vim که یک ویرایشگر قدرتمند به شمار می آید به صورت پیش فرض نصب شده است. همچنین، بیشتر سیستم عامل های غیر GUI نیز از این ویرایشگر متنی بر پایه خط فرمان استفاده می کنند، این ویرایشگر دارای ویژگی های متعددی است که قابلیت تنظیم بسیاری دارد. می توانیم vim را به عنوان یک میانبر صفحه‌کلید برای اکثر عملکرد ها به حساب آوریم که دارای مجموعه ای قوی و پایدار از افزونه‌ها می باشد .

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

نحوه پیدا کردن و جایگزینی یک دستور در ویرایشگر vim

پس از توضیح مختصر در مورد این نرم افزار ویرایشگر، اکنون می خواهیم  نحوه یافتن و جایگزینی یک دستور در این نرم افزار را با دقت بیشتری بررسی کنیم.

بررسی ساختار دستور Find and Replace در ویرایشگر vim

یک دستور ضروری در ویرایشگر vim، دستور جایگزینی است که با حرف “s” نیز قابل دسترسی می باشد. ما از این حرف “s” با علامت کولون “:” استفاده می کنیم. ساختار کلی این دستور جایگزینی به صورت زیر است:

:[range]s/{pattern}/{string}/[options] [count]

این دستور، دنبال یک “pattern” در محدوده یا range می گردد و آن را با یک “string” جایگزین می‌کند. خط فعلی، خطی است که نشانگر در آن قرار دارد. بیایید ساختار این دستور را با جزئیات بررسی کنیم.

range: اگر بخواهیم متنی را بین خطوط مشخص شده جایگزین کنیم، از عبارت range syntax استفاده می کنیم. اگر محدوده ای مشخص نشده باشد، فقط متن را در خط موجود جایگزین می کنیم.

pattern: به معنای الگو نیز می باشد، هر متنی را که بخواهیم جایگزین کنیم در این قسمت مشخص می شود.

string: رشته ای که برای تعویض الگو استفاده می شود.

options: برای هر رخداد الگوی جستجو، باید از g”  flag” استفاده شود. اگر بخواهیم این مرحله را رد کنیم، آن را با پارامتر “i” نشان می دهیم،“c” به ما این امکان را می دهد که هر عملیات را به صورت دستی بررسی و جایگزین کنیم.

  نحوه استفاده از دستور Find and Replace در vim

برای دریافت ویرایشگر vim، ابتدا vim را بر روی نرم افزار لینوکس مورد نظر خود نصب کرده و پیکربندی می کنیم. به عنوان مثال دستور زیر را برای نصب ویرایشگر vim روی توزیع دبیان لینوکس مثل اوبونتو اجرا کنید:

نحوه یافتن و جایگزینی یک دستور در vim

وقتی که vim روی سیستم ما نصب شد، می توانیم آن را با اجرای دستور vim به صورت زیر پیکربندی کنیم:

[email protected]: $ vim

زمانی که دستور قبلی اجرا می شود، ویرایشگر vim مانند تصویر زیر باز می شود.

نحوه یافتن و جایگزینی یک دستور در vim

برای انجام عملیات find and replace به یک فایل متنی آزمایشی با داده در آن نیازمندیم. بیایید با ساخت سندی به نام “Story_Document.txt” شروع کنیم.

[email protected]: touch story_ Document. txt 

در ابتدا، از ویرایشگر nano برای باز کردن آن استفاده می کنیم.

[email protected]: nano story_ Document. txt 

همان طور که در ویرایشگر nano هستیم، چند خط از متن را وارد کرده و تغییرات را در “Story_Document.txt” ذخیره می کنیم.

admin@azarsys.com: touch story_ Document. txt

مثال 1

روش تک اسلش «/» و نقطه، ساده ترین راه برای پیدا کردن و جایگزینی در ویرایشگر vim است. یک کلمه را می توان با استفاده از اسلش پیدا کرد و با یک نقطه جایگزین کرد. از ویرایشگر vim برای باز کردن فایل “Story_Document.txt” استفاده می کنیم.

[email protected]: $ vim story _ document.txt

با زدن کلید اسلش ( / ) در ویرایشگر vim این امکان بوجود می آید که عبارت Alice را جست و جو کنیم.

/Alice

با کلید enter، به اولین نمونه از عبارت “Alice” می رویم ک در زیر نمایش داده شده است.

نحوه یافتن و جایگزینی یک دستور در vim

در مرحله بعد می توانیم دستور cgn را وارد کنیم. آخرین موردی که ما جستجو کردیم توسط این دستور ویرایشگر vim یافت می شود پس آن را حذف کرده و به حالت insert mode تغییر می دهیم.

--INSERT--

حال در حالت insert mode عبارت “Bella” را وارد می کنیم. در ابتدا کلمه “Alice” با کلمه “Bella” جایگزین می شود. برای جایگزینی خودکار کلمه “Bella” با کلمه “Alice”، باید کلید “N” را فشار دهیم تا به نمونه بعدی کلمه برویم. حال تغییرات انجام شده به صورت زیر نشان داده می شود:

نحوه یافتن و جایگزینی یک دستور در vim

 به طورکلی این ساده ترین راه برای استفاده از دستور find and replace در ویرایشگر vim است. اما یافتن کلمه ای پر تکرار با استفاده از این روش ممکن است خسته کننده باشد.

مثال 2

برای یافتن و جایگزینی هر نوع عملیات ساده و پیچیده ای، ممکن است دوباره از دستور find and replace در ویرایشگر vim استفاده کنیم. بیایید دستور find and replace را برای هر رویداد در یک خط امتحان کنیم.

s/Bella/Alice/g

در ابتدا این جایگزینی کلمه “Bella” به جای کلمه “Alice” انجام می شود. حال، فایل“Story_Document.txt” باید به شکل زیر تشکیل شده باشد.

نحوه یافتن و جایگزینی یک دستور در vim

مثال 3

در این قسمت ما باید دستور قبلی را کمی تغییر دهیم تا بتوانیم هر رخدادی را در هر خط از فایل پیدا کرده و جایگزین کنیم:

s/Bella/Alice/g

ما می‌ توانیم هر رخدادی را در هر خطی با استفاده از علامت درصد «%» جایگزین کنیم که به ما امکان دسترسی به کل محتوای فایل را می‌دهد. پس از جایگزینی همه نمونه ها، موارد زیر باید با فایل “Story_Document.txt” مطابقت داشته باشد.

5050

مثال 4

هنگامی که از دستور جایگزینی برای اجرای دستور find and replace استفاده می کنیم، ویرایشگر به طور پیش فرض به حروف بزرگ و کوچیک حساس است. با افزودن گزینه “i” به انتهای قسمت جست و جو ممکن است جستجو هایی را انجام دهیم که به حروف بزرگ و کوچک حساس نباشند. حال در این قسمت می خواهیم کلمه rabbit را جایگزین cat کنیم.

s/rabbit/cat/gi

پس از ایجاد تغییرات، خطوط موجود در “Story_Document.txt” باید به صورت زیر خوانده شوند.

0606

مثال 5

علاوه بر این، گزینه “c” برای تایید دستور find and replace است. وقتی که این گزینه به عنوان آخرین پارامتر گنجانده می شود دستور find and replace از ما درخواست جایگزینی می کند و هر وقت که کلمه “Alice” به صورت زیر یافت شد، ویرایشگر دستور تایید را می خواهد.

s/Alice/Bella/gc

در خط فرمان این انتخاب را داریم که “y” را برای بله، “n” را برای خیر و “a” را برای همه موارد در صورت دریافت یک درخواست کلیک کنیم. فشار دادن کلید “l” جایگزین یک خط می شود و “q” جایگزین فعلی را پایان می دهد.

replace with Bella(y/n/a/q/l/^E/^Y)

با انجام دادن مراحل بالا، در فایل “Story_Document.txt” کلمه alice به کلمه “Bella” تغییر یافته است. این تغییر در شکل زیر نمایان است:

مثال 6

هر دو تطابق یعنی تطابق جزئی و کامل به طور خودکار با استفاده از دستور find and replace قابل بازیابی است. این دستور به جای تغییر کل عبارت، این امکان را به ما می دهد تا فقط چند کلمه را تغییر دهیم. لزوم یافتن یک کلمه دقیق و سپس جایگزینی آن می تواند در برخی شرایط منحصر به فرد باشد. بیایید با استفاده از دستور زیر اصطلاح دقیق «bored» را پیدا کرده و عبارت «sad» را جایگزین آن کنیم

S/\<bored/>/sad/gi

پس از اجرای این برنامه، موارد زیر باید در فایل “Story_Document.txt” ما مطابقت داشته باشند.

نحوه یافتن و جایگزینی یک دستور در vim

نتیجه گیری

در این مقاله تکنیک‌های فراوانی را برای اجرای دستور find and replace در ویرایشگر Vim مورد بررسی قرار دادیم. Vim یک عملکرد قوی به نام find and replace دارد که ویرایش سریع متن را برای شما آسان می کند. در این مقاله سعی کردیم با نشان دادن دستورات و تصاویر، به شما در اجرای دستور find and replace کمک کنیم. امیدواریم مطالب این مقاله برای شما مفید واقع شده باشد. شما می توانید سوالات خود را از بخش نظرات با ما در میان بگذارید.

سوالات متداول:

آیا ویرایشگر vim هنوز هم مورد استفاده قرار می گیرد؟

vim تاریخچه غنی دارد، که از vi سرچشمه گرفته و هنوز هم در حال توسعه است. ابزارهای زیادی نیز از حالت شبیه سازی vim پشتیبانی می کنند.

آیا vim به پایتون نیاز دارد؟

vim در همه حالت به پایتون یا پایتون 3 نیاز دارد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *