پیدا کردن الگو و ویرایش
دستور s%:
برای پیدا کردن و جایگزینی الگو استفاده میشه.
کلمهی folan
رو توی این فایل با کلمهی my_folan
عوض کن.
:%s/folan/my_folan
ولی دستور بالا فقط اولین مورد پیدا شده تو یک خط رو جایگزین میکنه.
تمام کلمههای folan
توی هر خط توی فایل رو با کلمهی my_folan
عوض کن.
:%s/folan/my_folan/g
g
روی برای تغییر همهی موارد توی خط استفاده میکنیم و c
رو برای تایید جایگزینی.
تمام کلمههای folan
رو تو فایل پیدا کن و به ترتیب بپرس کدوم رو میخوام با my_folan
عوض کنم.
:%s/folan/my_folan/gc
همهی خطهایی که کلمهی folan
دارن رو پیدا کن و کل خط رو حذف کن.
:g/folan/d
از همهی عددها یکی کم کن
:g/\d\{}/ normal ^X
همهی خطهایی که کلمهی "folan
" و یک فاصله و یک عدد جلوش دارن رو پیدا کن اون عدده رو ۵ تا کم کن.
:g/\"folan\": \d\{}/ normal 5^X
مثلا یه فایل json که یه سری ابجکت با کلید folan
داخلش داره و مقدار folan
ها همه ۵ تا بیشتر از مقدار درستشون هستن رو میخوایم درست کنیم:
[
{
"name": "first folan",
"folan": 5
},
{
"name": "second folan",
"folan": 6
}
]
بعد از اعمال دستور:
[
{
"name": "first folan",
"folan": 0
},
{
"name": "second folan",
"folan": 1
}
]
خطی که کلمهی folan
داره رو پیدا کن و کاراکتر آخرش رو حذف کن
:g/folan/norm $x
زنجیره کردن چند دستور بدون چاپ خطا (چون پرتاپ خطا توی یکی از دستورها توی زنجیره باعث میشه دستورات بعدی در زنجیره اجرا نشن)
:silent! %s/Folan/Bahmaan/g | silent! %s/folan/bahmaan/g
تغییر هر الگوی example["folan"] به example.folan هر example["folan"] رو پیدا کن و به example.folan تبدیلش کن (توی ریفکتور کد پایتون پایتون بدرد میخوره)
:%s/info\[\"\(.*\)"\]/info.\1/g
همه خطایی که داخلشون def هست رو پیدا کن بعدش P
بزن
یعنی همه خطایی که def دارن و پیدا کن خط بالاش محتویات تو کلیپبورد و paste کن
یه دکورتور بخوای بذاری بالای همهی تابع های یه فایل بدرد میخوره
:g/def/ normal P
طبیعتا جایی که الگو رو میذارید میشه از regex استفاده کرد.
لیست QuickFix
پیدا کردن هر خط شامل عبارت target="_blank" در همهی فایلهای موجود در مسیر پروژه (مسیری که ویم در آن اجرا شده و زیر شاخههایش) با پسوند html
:vimgrep ".*target=\"_blank\".*" **/*.html
باز کردن لیست QuickFix
:cw
رفتن به محل آیتم بعدی در لیست QuickFix
:cn
رفتن به محل قبلی در لیست QuickFix
:cp