دستورات جایگزینی متن
یکی از قابلیتهای قدرتمند ویم، دارا بودن یک نوع فرمان SED داخلی است. این فرمان که در ویم معمولاً substitute خوانده میشود، ابزار بسیار پیشرفتهای برای یافتن و ویرایش متن به وسیلهی الگوهای رجکس است. با استفاده از این دستور، کاربر ویم میتواند ویرایشهای عظیم و پیچیدهای را روی فایلها اعمال کند. عملیاتهای طولانی و طاقت فرسای اصلاح متنی طولانی با استفاده صحیح از این دستور به آسانی صحبت کردن با بهترین دوستتان میشوند.برای مثال, یک فایل html با محتوای زیر داریم.
Quote of the day
Shopenhauer
"The majority of men... are not capable of thinking, but only of believing, and... are not accessible to reason, but only to authority."
(Arthur Shopenhauer)
فرض میکنیم که این بخشی از یک مقاله دانشگاهی یا پستی برای یک وبلاگ است. همچنین فرض میکنیم که ما نام آرتور شوپنهاور را از اول این فایل اشتباه تایپ کردهایم. بهجای Sch برای صدای ش در آلمانی از Sh در انگلیسی استفاده کردهایم. حالا ساعتها کار ما بخاطر این اشتباه غیرقابل ارائه است.
برای حل این مشکل از یک دستور جایگزینی ساده استفاده میکنیم.
:%s/Shopenhauer/Schopenhauer/g
اجازه بدهید دستور را خرد کنیم.
- % همیشه اشاره به فایل فعلی در ویم دارد، اینجا یعنی در این فایل بگرد
- s شروع دستور جستجو و جایگزینی همیشه با این حرف است. به معنی substitute
- /الگوی هدف/
- /الگوی مقصد/
- g انجام عملیات برای تمامی مچها
در ویم نقطه . اشاره به خط زیر نشانگر دارد
سینتکس ساده ی دستورات جایگزینی به شکل زیر است:
:s/search/replace/flags
c
تایید کردن هر جایگزینی بصورت دستیe
ساکت کردن ارورها در صورتی که الگو پیدا نشودi
نادیده گیری حروف بزرگ و کوچک ignorecaseI
حساسیت به حروف بزرگ و کوچکg
انجام جایگزینی در تمام مچها، در غیر این صورت جایگزینی پس از اولین مچ متوقف میشودn
نمایش تعداد مچها و عدم جایگزینی