جستجو و جایگزینی جهانی
vi از دستور ex برای انجام عملیات جستجو و جایگزینی (به نام "جایگزینی" در vi) در محدوده ای از خطوط یا کل فایل استفاده می کند. برای تغییر کلمه “Line” به “line” برای کل فایل، دستور زیر را وارد می کنیم:
:%s/Line/line/g
:%s/Line/line/g
بیایید این دستور را به موارد جداگانه تقسیم کنیم و ببینیم هر کدام چه کاری انجام می دهند:
جدول 12-5: نمونه ای از نحو جستجو و جایگزینی جهانی
معنی مورد
معنی مورد
: کاراکتر کولون دستور ex را شروع می کند.
% محدوده خطوط را برای عملیات مشخص می کند. % یک میانبر به معنای خط اول تا خط آخر است. به طور متناوب، محدوده می تواند مشخص شود 1,5 (از آنجایی که فایل ما پنج خط است)، یا 1 دلار که به معنی "از خط 1 تا آخرین خط فایل" است. اگر محدوده خطوط حذف شود، عملیات فقط روی خط فعلی انجام می شود.
جستجو و جایگزینی
s عملیات را مشخص می کند. در این مورد، جایگزینی (جستجو و جایگزینی).
/خط/خط/ الگوی جستجو و متن جایگزین.
g این به معنای "جهانی" است به این معنا که جستجو و جایگزینی در هر نمونه از رشته جستجو در خط انجام می شود. اگر حذف شود، فقط اولین نمونه از رشته جستجو در هر خط جایگزین می شود.
پس از اجرای دستور Search-and-Replace فایل ما به شکل زیر است:
روباه قهوه ای سریع از روی سگ تنبل پرید. باحال بود. خط 2
خط 3
خط 4
خط 5
روباه قهوه ای سریع از روی سگ تنبل پرید. باحال بود. خط 2
خط 3
خط 4
خط 5
همچنین میتوانیم یک دستور جایگزین را با تأیید کاربر مشخص کنیم. این کار با افزودن یک "c" به انتهای دستور انجام می شود. مثلا:
:%s/line/Line/gc
:%s/line/Line/gc
این دستور فایل ما را به شکل قبلی خود تغییر می دهد. با این حال، قبل از هر تعویض، vi می ایستد و از ما می خواهد که تعویض را با این پیام تایید کنیم:
با خط (y/n/a/q/l/^E/^Y) جایگزین شود؟
با خط (y/n/a/q/l/^E/^Y) جایگزین شود؟
هر یک از شخصیت های داخل پرانتز یک انتخاب ممکن است به شرح زیر:
جدول 12-6: کلیدهای تأیید را جایگزین کنید
اقدام کلیدی
اقدام کلیدی
y تعویض را انجام دهید.
n از این نمونه الگو بگذرید.
a جایگزینی را روی این الگو و تمام نمونههای بعدی آن انجام دهید.
q یا Esc جایگزینی را کنار بگذارید.
l این تعویض را انجام دهید و سپس ترک کنید. مخفف «آخرین»
Ctrl-e، Ctrl-y به ترتیب به پایین و بالا اسکرول کنید. برای مشاهده زمینه جایگزینی پیشنهادی مفید است.
اگر تایپ کنید y، تعویض انجام خواهد شد n باعث خواهد شد vi برای رد شدن از این نمونه و رفتن به مورد بعدی.