تصور کنید در یک روز شلوغ کاری هستید، سرور شرکت دچار مشکل شده و باید سریعاً فایل پیکربندی را تغییر دهید. در حالی که به سیستم خود SSH زدهاید، هیچ رابط گرافیکی در دسترس نیست. وقت تنگ است و هر ثانیه حیاتی است. حالا اگر از شما خواسته شود از یک ویرایشگر متن استفاده کنید که با سرعت برق و بدون نیاز به ماوس فایلهایتان را ویرایش کنید، کدام ابزار را انتخاب میکنید؟ پاسخ بسیاری از متخصصین در چنین لحظاتی، بدون شک Vim خواهد بود.
اگر تا به حال در چنین شرایطی قرار گرفتهاید و به دنبال یادگیری نحوه مدیریت بهتر این موقعیتها هستید، پیشنهاد میکنیم به آموزش لینوکس سری بزنید.
کار با Vim مثل نواختن ویولن است؛ ابتدا کنترل بر روی سیمها و آرشه ممکن است دشوار باشد، اما با تمرین، هر نت به یک موسیقی زیبا تبدیل میشود که شنوندگان را به وجد میآورد.
Vim چیست و چگونه خلق شد
شاید نام Vi به گوشتان خورده باشد،Vi ویرایشگر متنی سیستم عامل Unix بود که در سال 1976 توسط Bill Joy توسعه داده شد،اما این ابزار با وجود محبوبیت بالا،محدودیت هایی نیز داشت،این محدودیت ها باعث شد Bram Moolenaar که خود از کاربران Vi بود، در سال 1991 نسخهای به نام “Vim” که اختصاری برای Vim Improved است را به عنوان یک پروژه مستقل منتشر کرد که هدف اصلی آن بهبود قابلیت های Vi بود.
Vim و جامعه متن باز (Open Source)
یکی از جنبههای قابل توجه Vim این است که Moolenaar همیشه این پروژه را بهعنوان نرمافزار متنباز و رایگان منتشر کرد. او همچنین از کاربران Vim درخواست میکرد که به جای پرداخت هزینه برای نرمافزار، به پروژههای خیریه کمک کنند، به خصوص به پروژههای حمایتی از کودکان در اوگاندا. این رویکرد باعث شد تا Vim نه تنها در دنیای نرمافزار محبوب شود، بلکه به عنوان نمادی از همکاری جامعه و نرمافزار آزاد شناخته شود.
نصب و شروع کار با vim
اکنون زمان آن است که کار با این ابزار جذاب را شروع کنیم
اولین مرحله نصب این ابزار است.
شما میتوانید vim را روی سیستم عامل های مختلف نصب و استفاده کنید،در این آموزش ما به نصب و آموزش استفاده این ابزار در سیستم عامل دوست داشتنی لینوکس میپردازیم.
برای نصب بر روی سیستم عامل های بر پایه دبیان مانند Ubuntu از دستور زیر استفاده میکنیم.
sudo apt-get update
sudo apt-get install vim -y
اگر سیستم عامل شما از پکیج منیجرهای بر پایه RPM استفاده میکند)توزیع هایی مانند CentOs) از دستور زیر برای نصب استفاده کنید:
dnf install vim -y
پس از اتمام فرایند نصب با استفاده از دستور زیر میتوانید درستی فرایند نصب را چک کنید
vim -v
اگر خروجی دستور اطلاعات نرم افزار را به شما نمایش داد به این معناست که فرایند نصب به درستی انجام شده است.
اطلاعات نرم افزار در خود محیط vim به شما نمایش داده میشود پس برای خروج از این صفحه باید :q را تایپ کنید و دکمه Enter را بزنید تا از این صفحه خارج شوید.
مودهای ویرایشگر vim
ویرایشگر vim دارای چهار حالت (mode) است:
- Command Mode : این حالت که گاها normal mode نیز نامیده میشود اولین حالتی است که ما هنگام وارد شدن به نرم افزار مشاهده میکنیم.در این حالت شما میتوانید با استفاده از یک سری دستورات کارهایی مانند جا به جایی بین خطوط را به سرعت انجام دهید.
- Insert Mode : این حالت کهedit mode نیز نامیده میشود یک حالت ساده برای نوشتن متن است، زمانی که شما در command mode هستید با فشردن کلید I وارد Insert mode میشوید که در این حالت در نوار افقی انتهای صفحه(message area) به شما پیغام –Insert– نمایش داده میشود.هم چنین با فشردن کلید Esc میتوانید از این حالت خارج شوید.
- Ex Mode : دستورات این حالت غالبا هنگامی که قصد خروج از فایل را دارید استفاده میشوند،همانطور که در ابتدا دیدید برای خروج از فایل باید دستور :q را وارد کنید. به این دلیل که تمام دستورات در این حالت با ” : ” آغاز میشوند به این حالت colon commands نیز گفته میشود.
- Visual Mode : حالت Visual در Vim به شما این امکان را میدهد که متون را بهطور آسان و سریع انتخاب کنید و بر روی آنها عملیات مختلفی انجام دهید.
حالا که با حالت های مختلف vim آشنا شدیم نوبت این است که نگاهی به مهم ترین دستورات هر حالت داشته باشیم:
مهم ترین دستورات Command mode در Vim
حرکت مکاننما:
- h حرکت مکاننما به سمت چپ به اندازه یک کاراکتر
- l حرکت مکاننما به سمت راست به اندازه یک کاراکتر
- j حرکت مکاننما به سمت پایین (خط بعدی در متن)
- k حرکت مکاننما به سمت بالا (خط قبلی در متن)
حرکت به جلو و عقب در کلمات و خطوط:
- w حرکت مکاننما به جلو تا ابتدای کلمه بعدی
- e حرکت مکاننما تا انتهای کلمه فعلی
- b حرکت مکاننما به عقب تا ابتدای کلمه قبلی
- ^ حرکت مکاننما به ابتدای خط
- $ حرکت مکاننما به انتهای خط
حرکت به ابتدا و انتهای فایل:
- gg حرکت مکاننما به اولین خط فایل
- G حرکت مکاننما به آخرین خط فایل
- nG حرکت مکاننما به خط شماره n
پیمایش در فایل:
- Ctrl + B پیمایش به سمت بالا تقریباً به اندازه یک صفحه کامل
- Ctrl + F پیمایش به سمت پایین تقریباً به اندازه یک صفحه کامل
- Ctrl + U پیمایش به سمت بالا به اندازه نصف صفحه
- Ctrl + D پیمایش به سمت پایین به اندازه نصف صفحه
- Ctrl + Y پیمایش به سمت بالا به اندازه یک خط
- Ctrl + E پیمایش به سمت پایین به اندازه یک خط
جستجو در Vim
- / با زدن این کلید و تایپ عبارت مورد نظر،Vim از محل فعلی مکاننما به جلو شروع به جستجو میکنه. مثلاً اگر بنویسی /test، اولین جایی که کلمه “test” وجود داره رو پیدا میکنه.
- ? مشابه دستور / هست، ولی این بار جستجو از محل مکاننما به عقب انجام میشه.
- n بعد از جستجو، برای رفتن به نتیجه بعدی از این کلید استفاده کن.
- N برای رفتن به نتیجه قبلی جستجو از این کلید استفاده میشه.
بازگردانی تغییرات در Vim
- u این دستور آخرین تغییر رو لغو (undo) میکنه. هر بار که این کلید رو بزنی، یک مرحله از تغییرات برمیگرده.
- Ctrl + r این دستور بازگردانی (redo) تغییرات لغو شده رو انجام میده. اگر از u برای لغو تغییرات استفاده کردی و میخوای دوباره تغییرات رو برگردونی، از این دستور استفاده کن.
مهم ترین دستورات insert mode در Vim
-
درج (Insert)
- a درج متن بعد از مکاننما
- A درج متن در انتهای خط
- i درج متن قبل از مکاننما
- I درج متن قبل از ابتدای خط
- o باز کردن خط جدید زیر مکاننما و ورود به حالت درج
- O باز کردن خط جدید بالای مکاننما و ورود به حالت درج
-
حذف (Delete)
- dd حذف کل خط جاری
- dw حذف کلمه جاری
-
کپی و چسباندن (Yank & Paste)
- p قرار دادن متن کپیشده بعد از مکاننما
- P قرار دادن متن کپیشده قبل از مکاننما
- yw کپی کردن کلمه جاری
- yy کپی کردن کل خط جاری
مهم ترین دستورات Ex mode در Vim
اجرای دستورات Shell در Vim
- ! command : یک دستور shell رو اجرا میکنه و نتیجهاش رو توی ویرایشگر فقط نشون میده، بدون اینکه بخواد از ویرایشگر خارج بشه.
- r! command : یک دستور shell رو اجرا میکنه و نتیجهاش رو توی ویرایشگر قرار میده.
- r file : محتوای یک فایل مشخص رو میخونه و توی ویرایشگر قرار میده.
جایگزینی کلمات در Vim
- s/old/new/g : این دستور همهی موارد old رو در خط فعلی با new جایگزین میکنه.
- %s/old/new/g : این دستور همهی موارد old رو در کل فایل با new جایگزین میکنه.
- %s/old/new/gc : این دستور مثل دستور قبلیه، ولی ازت تأیید میگیره که آیا هر جایگزینی انجام بشه یا نه.
دستورات ذخیرهسازی و خروج در Vim
- x : تغییرات رو ذخیره میکنه و از ویرایشگر میاد بیرون.
- wq : دقیقا کار دستور بالا رو میکنه؛ تغییرات رو ذخیره میکنه و از فایل خارج میشه.
- wq! : برای ذخیره کردن تغییرات و خروج از ویرایشگر استفاده میشود، و بهصورت خاص به شما این امکان رو میده اگر امکان ذخیره کردن تغییرات وجود نداشته باشه تغییرات رو نادیده بگیرید و به هر حال از Vim خارج بشید.
- w : تغییرات رو ذخیره میکنه، ولی هنوز توی ویرایشگر میمونه.
- w! : تغییرات رو بدون توجه به مشکلات در صورت امکان ذخیره میکنه و هنوز توی ویرایشگر میمونه.
- w new_filename : این دستور برای ذخیره کردن تغییرات در یک فایل جدید استفاده میشه، این دستور به شما این امکان رو میده که تغییرات رو بدون آسیب زدن به فایل اصلی ذخیره کنید.همچنین در مواردی که شما پس از اعمال تغییرات متوجه میشید که نمیتونید تغییرات رو ذخیره کنید میتونید از این دستور برای حفظ تغییراتتون استفاده کنید.
- q : بدون اینکه چیزی رو ذخیره کنه از فایل خارج میشه.
- q! : اگر شما تغییراتی روی فایل اعمال کرده باشید نمیتونید با دستور :q از فایل خارج شید،این دستور از فایل میره بیرون و به هیچ چیزی اهمیت نمیده.
مهم ترین دستورات Visual mode در Vim
- v با زدن این کلید، میرید تو حالت Visual و میتونید کاراکترها رو انتخاب کنید. بعدش با کلیدهای جهتی (←, →, ↑, ↓) میتونید متن رو انتخاب کنید.
- V این کلید شما رو میبره تو حالت Visual Line با این کار میتونید خطها رو انتخاب کنید.
- Ctrl + v با این کلید، به حالت Visual Block میرید. این حالت به شما اجازه میده که یک بلوک مستطیلی از متن رو انتخاب کنید. این دستور برای کار با جداول یا متون منظم خیلی کاربردیه.
- o با این کلید، میتونید مکان انتخاب رو به انتهای انتخاب تغییر بدید. اینطوری میتونید از انتها متن رو ویرایش کنید.
- O این کلید، مکان انتخاب رو به ابتدای انتخاب تغییر میده. با این کار میتونید از ابتدای انتخاب شروع به ویرایش کنید.
نکته: دقت کنید که بعد از انتخاب متن میتونید تغییراتی مثل کپی و حذف و… که در حالت های دیگه گفته شد رو روی متن اعمال کنید.
منابع بیشتر برای یادگیری Vim
- مستندات رسمی : vim با اجرای دستور help در داخل Vim، میتونید به راهنمای کامل و توضیحات دقیق تمامی دستورات دسترسی داشته باشی.
- Vim Tutor :یک آموزش تعاملی داخلی در Vim که با اجرای دستور vimtutor در ترمینال میتونید بهش دسترسی پیدا کنی.
- سایت Vim Adventures : یک بازی آموزشی تعاملی که به کمک آن میتوانی دستورات Vim را به صورت سرگرمکننده یاد بگیری. vim-adventures.com
- سایت Open Vim: یک شبیهساز آنلاین برای یادگیری دستورات Vim در محیطی ساده و تعاملی. این سایت به تو کمک میکنه که بدون نیاز به نصب نرمافزار، با دستورات Vim تمرین کنی. com
پایان مسیر یادگیری؟ تازه اول راهه!
در نهایت، یادگیری و کار با Vim یکی از مهارتهای خیلی کاربردی برای برنامهنویسان و کاربران حرفهایه. با تسلط به دستورات Vim میتونی سرعت و بهرهوری کارهات رو بهطور قابلتوجهی بالا ببری. هرچند اوایل ممکنه کمی سخت به نظر بیاد، ولی با تمرین و استفاده از منابع آموزشی خوب، خیلی راحت میتونی از امکانات عالی این ویرایشگر استفاده کنی.
حالا که با اصول اولیه آشنا شدی، وقتشه که خودت دست به کار بشی و دستورات رو تمرین کنی. با گذشت زمان، کار با Vim برات خیلی ساده و لذتبخش میشه.
نویسنده : مهدی فتحی