خط فرمانگنو/لینوکس

جستجو و جایگزینی در ویرایشگر vi

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

جستجو درون یک خط

فرمان f یک خط را جستجو کرده و مکان‌نما را به نمونه بعدی از یک کاراکتر تعیین شده انتقال می‌دهد. برای مثال فرمان fa خط را جستجو کرده و مکان‌نما را به کلمه بعدی که دارای کاراکتر a است انتقال می‌دهد. پس از انجام یک جستجو در خط می‌توان آن را با استفاده از فرمان : تکرار نمود.

جستجوی یک فایل کامل

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

مکان نما را در اولین خط فایل قرار دهید. تایپ کنید:

جستجو و جایگزینی سراسری

vi از یک فرمان خارجی به منظور انجام عملیات‌های جستجو و جایگزینی در کل خطوط یک فایل استفاده می‌کند. برای مثال به منظور تغییر کلمه Line در کلیه خطوط به کلمه line فرمان زیر را وارد کنید:

این فرمان را به چندین آیتم مختلف تقسیم کرده تا ببینیم هر کدام چگونه عمل می‌کند. به جدول زیر توجه کنید. هر یک از بخش‌های فرمانی که وارد کرده‌ایم را توضیح می‌دهد:

آیتممعنا
:کاراکتر دونقطه یک فرمان خارجی را شروع می‌کند.
%محدوده خطوط برای عملیات را تعیین می‌کند. % یک میانبر است به این معنی که از خط اول تا خط آخر. این رنج را می‌توان بصورت 1% تعیین کرد که یعنی از خط 1 تا آخرین خط در فایل. اگر محدوده خطوط حذف شده عملیات فقط در خط فعلی انجام می‌شود.
sعملیات را تعیین می‌کند. در این مورد جستجو و جایگزینی (Search and replace)
/Line/line/الگوی جستجو و متن جایگزین
gبه معنی Global یعنی اینکه جایگزینی بر روی همه نمونه‌های رشته جستجو در خط انجام می‌شود. اگر که g را حذف کنید، فقط اولین نمونه از رشته جستجو بر روی هر خط جایگزین می‌شود.

همچنین می‌توانیم یک فرمان جانشینی را با تایید کاربر اجرا کنیم:

مشاهده می‌کنید این بار از ما سوال می‌پرسد و در داخل پرانتز کاراکترهایی را نشان می‌دهد. هر کدام از این کاراکترها یک پاسخ به vi هستند که در جدول زیر این پاسخ‌ها توضیح داده شده‌اند:

کلیدحرکت مورد نظر
yانجام جایگزینی
nرد کردن این نمونه از الگو
aانجام جایگزینی بر روی این و همه نمونه‌های الگو متعاقب آن
q or ESCخروج از جایگزینی
lانجام این جایگزینی و سپس خروج. که مخفف کلمه last می‌باشد.
CTRL-E, CTRL-Yجابجایی به پایین. برای نمایش محتوای مورد نظر برای جایگزینی مفید است.

ویرایش چندین فایل

گاهی اوقات نیاز است که چندین فایل را به صورت همزمان ویرایش کنیم. شاید نیاز داشته باشید چندین فایل را تغییر دهید یا ممکن است محتوای یک فایل را به فایل دیگر کپی کنید. با استفاده از vi می‌توانیم چندین فایل را برای ویرایش با هم باز کنیم. با اختصاص دادن نام آن‌ها پس از فرمان vi به صورت زیر:

به منظور ایجاد فایل جدید با استفاده از فرمان ls کمی متن را از فرمان ls استخراج کرده و داخل فایل ls-output.txt می‌ریزیم به صورت زیر:

حال، فایل قدیمی خود را به همراه فایل جدید در داخل vi ویرایش می‌کنیم:

مشاهده می‌کنید که vi باز می‌شود و اولین نام وارد شده فایل را در صفحه نمایش نشان می‌دهد:

تعویض فایل‌ها در vi

به منظور تعویض و جابه‌جایی بین فایل‌ها در داخل vi از فرمان خارجی :n استفاده می‌کنیم و به منظور بازگشت به فایل قبلی از فرمان :N استفاده می‌کنیم.

در حالی که ما قادر به جابه‌جایی از یک فایل به فایل دیگر هستیم، ولی vi دارای یک قانون است که تا زمانی که فایل قبلی ذخیره نشده است شما را از جابه‌جایی منع می‌کند.

به منظور مجبور کردن vi به جابه‌جایی بین فایل‌ها و نادیده گرفتن تغییرات ایجاد شده (تغییرات از بین خواهد رفت) یک علامت تعجب پس از فرمان اضافه کنید.

علاوه بر این متدهای تعویض فایل که گفتیم vi برخی فرمان‌های دیگری را نیز دارد که مدیریت چندین فایل را آسان‌تر می‌کند. ما می‌توانیم لیستی از فایل‌هایی که ویرایش کرده‌ایم را با استفاده از فرمان :buffer نمایش دهیم.

با این کار لیستی از فایل‌ها در پایین صفحه نمایش مشخص خواهد شد. (دقت کنید که این فرمان در vi موجود نیست و برای استفاده بایستی vim را نصب کرده باشید.)

برای جابه‌جایی به فایل دیگر پس از فرمان بافر شماره فایل را وارد کنید:

باز کردن و ویرایش دیگر فایل‌ها

همچنین ممکن است که بخواهید به نشست ویرایش اخیر خود فایل‌هایی را برای ویرایش اضافه کنید. یعنی فایلی را برای ویرایش باز کرده‌اید و حالا نمی‌خواهید از vi خارج شوید و با استفاده از فرمان قبلی دو فایل را برای ویرایش انتخاب کنید. به این منظور برای آزمایش ابتدا یک فایل foo.txt را برای ویرایش از فرمان vi باز می‌کنیم:

سپس به منظور اضافه کردن فایلی دیگر از فرمان :e (سرنام واژه Edit) استفاده می‌کنیم.

به این منظور پس از :e نام فایل را وارد می‌کنید:

توجه داشته باشید که در این حالت نمی‌توانید با استفاده از فرمان‌های :n و :N بین فایل‌ها سوییچ کنید. برای سوییچ بین فایل‌ها در این حالت بایستی از فرمان buffer به همراه شماره فایل استفاده کنید.

کپی کردن محتوا از یک فایل به فایلی دیگر

گاهی اوقات در حین ویرایش چندین فایل می‌خواهیم که بخشی از یک فایل را به فایل دیگری که در حال ویرایش آن هستیم کپی کنیم. این کار را به سادگی با استفاده از فرمان‌های کپی و چسباندن که یاد گرفتیم انجام می‌دهیم. اول با استفاده از buffer به فایل اول سوییچ کنید:

سپس مکان‌نما را به خط اول برده و فرمان yy را وارد کنید تا کپی صورت گیرد:

حال دوباره با buffer این بار به فایل ۲ سوییچ کنید:

مکان‌نما را به خط اول برده، فرمان p را وارد کنید تا متن کپی شده در محل چسبانده شود.

درج یک فایل به صورت کامل در فایلی دیگر

ممکن است بخواهید که فایلی را به صورت کامل در داخل فایلی دیگر کپی کنید. به این منظور فایل ls-output.txt را به تنهایی در داخل vi با استفاده از فرمان زیر باز کنید:

خروجی:

به خط سوم رفته و فرمان زیر را وارد نمایید:

مشاهده می‌شود که محتویات فایل در foo.txt کپی می‌شود:

ذخیره کار خود در vi

شبیه تمامی دیگر کارها در vi ذخیره فایل‌های ویرایش شده نیز راه‌های مختلفی دارد. می‌دانید که می‌توان این کار را با استفاده از فرمان :w (سرنام واژه Write) انجام داد. ولی روش‌های دیگری وجود دارد که ممکن است مفید باشند. در حالت فرمان (Command Mode) وارد کردن ZZ فایل اخیر را ذخیره کرده و شما را از vi خارج می‌کند. فرمان :wq یک فرمان ترکیبی است و همین کار را انجام می‌دهد.

همچنین برای فرمان :w ممکن است نام فایل را تعیین کنیم. با این کار می‌توانیم فایلی را با نامی دیگر ذخیره کنیم. درست مثل گزینه save as که در اکثر برنامه‌ها وجود دارد.

منبع: لینوکس‌سیزن نوشته فرشید نوتاش حقیقت

برچسب ها

نوشته‌های مشابه

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

دکمه بازگشت به بالا
بستن