خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


یافتن و جایگزین کردن رشته در ویرایشگر متن Vim / Vi لینوکس

یافتن و جایگزین کردن رشته در ویرایشگر متن Vim / Vi لینوکس
این مقاله نحوه یافتن و جایگزینی متن در ویرایشگر متن Vim / Vi را شرح می دهد. Vim محبوب ترین ویرایشگر متن خط فرمان است. روی macOS و اکثر توزیع‌های لینوکس از پیش نصب شده است. یافتن و جایگزینی متن در Vim سریع و آسان است.

نرم افزار سامانه مودیان راهکار
در Vim می توانید متن را با استفاده از دستور زیر پیدا کرده و جایگزین کنید.



:substitute (:s)

برای اجرای دستورات در Vim، باید در حالت عادی، حالت پیش فرض هنگام اجرای ویرایشگر باشید. برای بازگشت به حالت عادی از هر حالت دیگری، فقط کلید Esc را فشار دهید. شکل کلی دستور بصورت زیر می باشد:

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

این فرمان هر خط در [range] را برای یک {pattern} یا الگوی سرچ، جستجو کرده و آن را با یک {string} جایگزین می‌کند. [count] یک عدد صحیح مثبت است که دستور را ضرب می کند. اگر [range] و [count] را مشخص نکنید، فقط الگوی موجود در خط فعلی جایگزین می شود. خط فعلی خطی است که مکان نما در آن قرار می گیرد. به عنوان مثال، برای جستجوی اولین foo در یک رشته در خط فعلی و جایگزینی آن با bar از دستور زیر باید استفاده کنید:

:s/foo/bar/

برای جایگزینی همه موارد الگوی سرچ در خط فعلی، g را اضافه کنید:

:s/foo/bar/g

اگر می خواهید الگو را در کل فایل جستجو و جایگزین کنید، از کاراکتر % به عنوان یک محدوده استفاده کنید. این کاراکتر محدوده ای از اولین تا آخرین خط را در فایل نشان می دهد:

:%s/foo/bar/g

اگر {string} حذف شود به عنوان یک رشته خالی در نظر گرفته می شود و الگوی تطابق هم حذف می شود. دستور زیر foo را در خط جاری حذف می کند:

:s/foo//g

به جای کاراکتر اسلش (/)، می توانید از هر کاراکتر تک بایتی غیرالفبایی دیگری به عنوان جداکننده استفاده کنید. این کار زمانی مفید است که در الگوی سرچ یا رشته جایگزین، کاراکتر / را داشته باشید. مثلا به مثال زیر توجه کنید:

:s|foo|bar|

برای تایید هر جایگزینی، از c استفاده کنید:

:s/foo/bar/gc

خروجی:

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

Y یا l را برای جایگزین کردن عبارتی که تطبیق آن پیدا شده وارد و enter کنید. n را برای رد شدن از عبارت تطبیق پیدا شده و q یا esc را برای خارج شدن از جایگزینی بفشارید. برای اسکرول صفحه به پایین از CTRL+Y و برای اسکرول کردن به بالا از CTRL+E استفاده کنید.
همچنین می توانید از regular expression ها به عنوان الگوی جستجو استفاده کنید. دستور زیر همه خطوطی را که با "foo" شروع می شوند با "Vim is the best" جایگزین می کند:

:%s/^foo.*/Vim is the best/gc

به طور پیش فرض، عملیات جستجو به حروف بزرگ و کوچک حساس است. جستجوی "FOO" با "Foo" مطابقت نخواهد داشت. برای نادیده گرفتن حروف بزرگ برای الگوی جستجو، از i در دستور استفاده کنید.

:s/Foo/bar/gi

راه دیگر برای اجبار نادیده گرفتن حروف این است که c\ را بعد از الگوی سرچ اضافه کنید. به عنوان مثال:

/Linux\c

بدین ترتیب دیگر حروف بزرگ و کوچک در سرچ لحاظ نخواهند شد.
اگر تنظیمات پیش‌فرض حساسیت به حروف بزرگ و کوچک را تغییر داده‌اید و می‌خواهید جستجوی حساس به حروف بزرگ را انجام دهید، از I استفاده کنید:

:s/foo/bar/gI

C\ هم پس از الگوی سرچ، جستجو را به حروف و بزرگ و کوچک حساس می کند.
هنگامی که هیچ محدوده ای مشخص نشده است، دستور جایگزینی فقط در خط جاری عمل می کند. محدوده می تواند یک خط یا محدوده بین دو خط باشد. مشخص کننده های خط با , و یا ; تعیین می شوند. محدوده را می توان با استفاده از شماره یا نمادهای خاص مشخص کرد. به عنوان مثال، برای جایگزینی همه foo ها به bar در تمام خطوطی که از خط 3 تا خط 10 شروع می شوند، دستور را به صورت زیر باید اجرا کنید:

:3,10s/foo/bar/g

کاراکتر . نمایانگر خط جاری است و $ آخرین خط را نشان می دهد. برای جایگزینی "foo" در تمام خطوط از خط جاری تا آخرین خط، دستور زیر را اجرا کنید:

:.,$s/foo/bar/

مشخص‌کننده خط را می‌توان با استفاده از نماد «+» یا «-» و به دنبال آن عددی که از شماره خط قبلی اضافه یا کم می‌شود، تنظیم کرد. اگر عدد بعد از نماد حذف شود، به طور پیش فرض 1 حساب می شود.
به عنوان مثال برای جایگزینی هر "foo" با "bar" که از خط فعلی شروع و تا چهار خط بعدی ادامه دارد، از دستور زیر استفاده کنید:

:.,+4s/foo/bar/g

دستور جایگزین به دنبال الگو به عنوان یک رشته و نه یک کلمه کامل حساب می شود. برای مثال، اگر «gnu» را جستجو می‌کردید، جستجوی «gnu» در کلمات بزرگ‌تری مانند «cygnus» یا «magnum» ممکن است وجود داشته باشند. به عبارت دیگر foo ممکن است فقط بصورت یک کلمه مستقل نباشد و حتی در لابلای کلمات دیگری هم وجود داشته باشد. برای جستجوی یک کلمه کامل، عبارت <\ و سپس کلمه یا الگوی سرچ تان را مشخص کنید. سپس با >\ آن را ببندید.
به عنوان مثال، برای جستجوی کلمه "foo" دستور زیر را اجرا کنید:

یافتن و جایگزین کردن رشته در ویرایشگر متن Vim / Vi لینوکس
Vim تمام دستوراتی را که در session جاری اجرا می کنید، پیگیری می کند. برای browse کردن history دستورات جایگزین قبلی، :s را وارد کنید و از کلیدهای جهت دار بالا/پایین برای یافتن عملیات جایگزین قبلی استفاده کنید. برای اجرای دستور کافی است Enter را فشار دهید. همچنین می توانید قبل از انجام عملیات دستور را ویرایش کنید. مثلا
خطوطی که با # شروع می شوند خطوط کامنت هستند. مثلا برای خطوط comment از 5 تا 20 دستور زیر را اجرا کنید:

:5,20s/^/#/

همه موارد « apple»، « orange» و «ا mango» را با « fruit» جایگزین کنید:

:%s/apple\|orange\|mango/fruit/g

فضای خالی انتهایی هر خط را حذف کنید:

:%s/\s\+$//e

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز