برنامه نویسی

(neo)vim جستجو و جایگزینی، با رفع سریع و گروه های ضبط

Summarize this content to 400 words in Persian Lang
من از pandoc برای تولید این وب سایت از فایل های علامت گذاری به html و … استفاده می کنممشکلی که تمام تصاویر من به آن تبدیل می شوند برچسب ها با، اما هدف من تولید یک نرمال است img برچسب زدن با altویژگی، و برای حل این مشکل باید تمام فرمت های تصویرم را از آن تبدیل کنم

!(neo)vim search and replace, with quickfix and capture groups(./path.jpg)

![](./path.jpg “title”]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده کنید :substitute و گروه ها را دستگیر کنید

بنابراین در اینجا یک ویدیو برای نشان دادن نحوه کار با این دستور وجود دارد

:’>s/\!\[\(.*\)\](\(.*\))/![](\2 “\1”)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این نشان‌دهنده محدوده کد برای اعمال فرمان فقط برای فعلی انتخاب شده بصری است و برای این مورد من کل خط را با آن انتخاب می‌کنم shift+v.

s/ این مختصر برای :substitute

s//

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

\!\[\(.*\)\](\(.*\))

فرار از همه شخصیت های خاص ! [ ] با اضافه کردن بک اسلش \ قبل از هر یک از آنها
گروهی را برای ثبت تمام متن ها در داخل پرانتز تعریف کنید [] با استفاده از \(.*\)

گروه دیگری را برای ثبت مسیر داخل تعریف کنید () با استفاده از
\(.*\)

![](\2 “\1”) اکنون کل خط را با فرمت و تغییر می دهیم

\2 اشاره به گروه تسخیر دوم که مسیر است path.jpg

\1 اشاره به اولین گروه تسخیر که عنوان است “title”

جستجو برای همه رخدادهای تصویر

اکنون پس از دانستن دستور خود برای تغییر فرمت تصویر، باید جستجو کنیمتمام رخدادهای تصویر در markdown فایل ها در src فهرست راهنما.

بنابراین، ما می توانیم از vim استفاده کنیم grep اینجوری دستور بده

توجه داشته باشید: من از neovim v0.11 استفاده می کنم ripgrep به صورت پیش فرض. بنابراین،شاید برخی از آرگومان های اینجا با grep معمولی کار نکنند

:بی صدا grep “\!\[” src –glob “*.md”

Enter fullscreen mode

Exit fullscreen mode

Now we have all our results inside the quickfix list, we can use:c[next|prev] دستور چرخش بین لیست و اعمال دستور ما برای هر کدامیک، اما اجرا و ناکارآمد خواهد بود.

دستور لیست رفع سریع را اعمال کنید

خوشبختانه، آن vim یک ویژگی داخلی برای اعمال هر دستوری بر روی همه فایل ها دارددرون qucikfix با استفاده از فهرست :cdo دستور، بنابراین در اینجا فرمان اراده استبودن:

:silent cdo! s/\!\[\(.*\)\](\(.*\))/![](\2 “\1”)/g

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اضافه می کنیم /g همچنین برای اعمال دستور در تمام فایل ها. همچنین در صورت نیازبه صورت دستی برای هر جایگزینی که اضافه می کنید تأیید کنید /gc.

در نهایت فایل ها را ذخیره کنید

بنابراین بعد از اینکه همه چیز خوب شد، باید هر تغییری را با استفاده از آن ذخیره کنیم

:wa!

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

من از pandoc برای تولید این وب سایت از فایل های علامت گذاری به html و … استفاده می کنم
مشکلی که تمام تصاویر من به آن تبدیل می شوند

برچسب ها با
، اما هدف من تولید یک نرمال است img برچسب زدن با alt
ویژگی، و برای حل این مشکل باید تمام فرمت های تصویرم را از آن تبدیل کنم

![title](./path.jpg) 

![](./path.jpg "title"]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده کنید :substitute و گروه ها را دستگیر کنید

بنابراین در اینجا یک ویدیو برای نشان دادن نحوه کار با این دستور وجود دارد

:'>s/\!\[\(.*\)\](\(.*\))/![](\2 "\1")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. <./> این نشان‌دهنده محدوده کد برای اعمال فرمان فقط برای فعلی انتخاب شده بصری است و برای این مورد من کل خط را با آن انتخاب می‌کنم shift+v.
  2. s/ این مختصر برای :substitute
   s//
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. \!\[\(.*\)\](\(.*\))

    • فرار از همه شخصیت های خاص ! [ ] با اضافه کردن بک اسلش \ قبل از هر یک از آنها
    • گروهی را برای ثبت تمام متن ها در داخل پرانتز تعریف کنید [] با استفاده از \(.*\)
    • گروه دیگری را برای ثبت مسیر داخل تعریف کنید () با استفاده از
      \(.*\)
  2. ![](\2 "\1") اکنون کل خط را با فرمت و تغییر می دهیم

    • \2 اشاره به گروه تسخیر دوم که مسیر است path.jpg
    • \1 اشاره به اولین گروه تسخیر که عنوان است "title"

جستجو برای همه رخدادهای تصویر

اکنون پس از دانستن دستور خود برای تغییر فرمت تصویر، باید جستجو کنیم
تمام رخدادهای تصویر در markdown فایل ها در src فهرست راهنما.

بنابراین، ما می توانیم از vim استفاده کنیم grep اینجوری دستور بده

توجه داشته باشید: من از neovim v0.11 استفاده می کنم ripgrep به صورت پیش فرض. بنابراین،
شاید برخی از آرگومان های اینجا با grep معمولی کار نکنند

:بی صدا grep "\!\[" src --glob "*.md"
Enter fullscreen mode

Exit fullscreen mode

a screenshot show the prev command in vim

Now we have all our results inside the quickfix list, we can use
:c[next|prev] دستور چرخش بین لیست و اعمال دستور ما برای هر کدام
یک، اما اجرا و ناکارآمد خواهد بود.

دستور لیست رفع سریع را اعمال کنید

خوشبختانه، آن vim یک ویژگی داخلی برای اعمال هر دستوری بر روی همه فایل ها دارد
درون qucikfix با استفاده از فهرست :cdo دستور، بنابراین در اینجا فرمان اراده است
بودن:

:silent cdo! s/\!\[\(.*\)\](\(.*\))/![](\2 "\1")/g
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اضافه می کنیم /g همچنین برای اعمال دستور در تمام فایل ها. همچنین در صورت نیاز
به صورت دستی برای هر جایگزینی که اضافه می کنید تأیید کنید /gc.

در نهایت فایل ها را ذخیره کنید

بنابراین بعد از اینکه همه چیز خوب شد، باید هر تغییری را با استفاده از آن ذخیره کنیم

:wa!
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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