آشنایی با ویرایشگر Vim
کمتر توسعهدهنده و برنامه نویسی را پیدا میکنید که اسم Vim را نشنیده باشد و با آن کار نکرده باشد. Vim که مخفف Vi iMproved میباشد، یک ویرایشگر متن (Text Editor) بوده که بر پایه ویرایشگر Vi است. Vim علاوه بر اینکه تمام خواص Vi را به ارث برده است، عملکرد و توسعهپذیری بالاتری نسبت به Vi دارد.
ویرایشگر متن Vim ویرایشگری Modal است. بدین معنی که در آن، Mode یا حالتهای مختلفی داریم. برای مثال وقتی در Vim دکمه i را فشار دهید ممکن است حرف i را چاپ کند و یا اینکه شما را به حالت insert mode ببرد.
Vim سه Mode یا حالت دارد:
- Command mode : در این حالت هر دکمهای از کیبرد که وارد شود، به عنوان دستور تفسیر میشود.
- Insert mode : در این حالت هر دکمهای که وارد شود، در ویرایشگر کاراکتر متناظر با آن دکمه درج میشود.
- Visual mode : در این حالت تمام کارهای بصری مانند highlight کردن و انتخاب قسمتی از متن، را میتوان انجام داد.
راهنما برای نصب Vim
در سیستم عامل های Linux و UNIX به صورت پیشفرض وجود دارد.
در سیستم عامل مک هم وجود دارد ولی برای GUI آن میتوانید از MacVim استفاده کنید.
در سیستم عامل ویندوز می توانید از gVim استفاده کنید.
وقتی به Vim وارد شوید، به صورت پیشفرض در Command mode قرار دارید. بنابراین برای رفتن به حالت های دیگر، باید از این Mode بروید. برای برگشتن به حالت Command mode هم دکمه <Esc> با بفشارید. در شکل زیر نحوه رفتن به modeهای دیگر را میبینید که به توضیح آنها میپردازیم.
- i – برای ورود به insert mode و پریدن به قبل از مکان فعلی نشانهگر
- a – برای ورود به insert mode و پریدن به بعد از مکان فعلی نشانهگر
- I – برای ورود به insert mode و پریدن به اولین کاراکتر غیر تهی آن خط
- A – برای ورود به insert mode و پریدن به آخرین کاراکتر آن خط
- v – برای ورود به visual mode (انتخابهای کاراکتری)
- V – برای ورور به visual mode (انتخابهای خطی)
- Ctrl + v – برای ورود به visual mode (انتخابهای چندخطی)
حرکت
برای حرکت در Command mode میتوانید از کلیدهای زیر استفاده کنید:
ولی شما میتوانید با فلش ها در هر mode حرکت کنید.
از دستورات مهم دیگر در حرکت کردن میتوان به عبارات زیر اشاره کرد:
- ۰ – رفتن به ابتدای خط
- ^ – رفتن به اولین کاراکتر غیر تهی خط
- w – رفتن به کلمه بعدی
- W – رفتن به کلمه بعدی (نشانهگذاری ها را نادیده میگیرد مانند نقطه، ویرگول و غیره)
- e – رفتن به آخر کلمه
- E – رفتن به آخر کلمه (نشانهگذاری ها را نادیده میگیرد)
- b – رفتن به اول کلمه
- B – رفتن به اول کلمه (نشانهگذاری ها را نادیده میگیرد)
- ge – رفتن به کاراکتر آخرِ کلمه قبلی
- gE – رفتن به کاراکتر آخرِ کلمه قبلی (نشانهگذاری ها را نادیده میگیرد)
- _g – رفتن آخرین کاراکتر غیر تهی خط
- gg – رفتن به ابتدای فایل
- $ – رفتن به آخرین کاراکتر خط
- ` – رفتن به مکان آخرین ویرایش
- o – ورود به insert mode و ایجاد خط جدید بعد از خط جاری و رفتن به آن
در شکل زیر برخی از این دستورات با مثال نشان داده شدهاند:
ویرایش
- d – شروع عملیات پاک کردن (در واقع عملیات cut کردن را انجام میدهد، که میتوان آن را در مکانی دیگر paste کرد)
- dd – پاک کردن خط (cut کردن خط)
- dw – پاک کردن کلمه
- d0 – پاک کردن تا اول خط
- dgg – پاک کردن تا ابتدای فایل
- dG – پاک کردن تا انتهای فایل
- u – undo کردن آخرین عمل
- Ctrl + r – redo کردن
- x – پاک کردن کاراکتر زیر نشانهگر
- X – پاک کردن کاراکتر قبل نشانهگر (backspace)
- r – جایگزین کردن کاراکتر جاری با کاراکتر جدید
جستجو و جایگزینی
- text/ – برای جستجوی کلمه (جای text قرار میگیرد) در فایل
- text? – برای جستجوی کلمه (جای text قرار میگیرد) در فایل
فرق این دو این است که در اولی از جایی که نشانهگر میباشد، به بعد جستجو را انجام میدهد ولی در دومی از جایی که نشانهگر میباشد، به قبل جستجو را انجام میدهد.
- n – رفتن به نمونه بعدی در جستجو
- N – رفتن به نمونه قبلی در جستجو
- s/text/replacement text/gc%: – جایگزین کردن replacement text با text (حرف g برای این که اگر چندین نمونه پیدا شد، همه را جایگذاری کند و c برای تایید اینکه آیا این جایگذاری انجام شود یا نه، استفاده میشود.)
کپی کردن و چسباندن
برای کپی کردن میتوانید از کلیدهای زیر استفاده کنید.
- y – عمل yank کردن در بافر کپی (همان کپی کردن است)
- yy – کپی کردن خط
- yw – کپی کردن یک کلمه
- yG – کپی کردن تا انتهای فایل
- p – عمل paste کردن بعد از نشانهگر
- P – عمل paste کردن قبل از نشانهگر
ذخیره کردن و خروج
برای ذخیره کردن فایل برای اولین بار از w filename: استفاده میکنیم که filename نام فایل ما است. دفعات بعد برای ذخیره کردن از w: استفاده میکنیم.
برای خروج از q: استفاده میکنیم، اگر که فایل خود را ذخیره نکرده باشیم Vim به ما اخطاری به مضمون “no write since last change” میدهد که از ما میخواهد فایل خود را ذخیره کنیم. ولی اگر نمیخواهید که این پیغام را به شما بدهد و قصد ندارید تا تغییراتی که در فایل دادهاید اعمال شود، از !q: استفاده کنید.
تلفیقی از دو دستور بالا هم، دستوری پر کاربرد است، که به صورت qw: میباشد.
برای اینکه کار خود را آسانتر کنیم از ZZ استفاده میکنیم، که هم ذخیره میکند و هم از Vim خارج میشود.
در این مقاله سعی شد که مهمترین دستورات Vim پوشش داده شود. Vim به تمرین زیادی برای ماهر شدن نیاز دارد و بعد از ماهر شدن در آن میبینید که چقدر کارها سریعتر و با بهره وری بیشتری انجام میشوند. حتما سعی کنید در Vim تمرین کنید و اگر برای شروع نمیخواهید که از محیط ترمینال یا کنسول استفاده کنید، میتوانید از این لینک کمک بگیرید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.