مرجع میان بر ها و ترفندهای vim

vim که من تو این مقاله بهش ویم می‌گم یه ویرایشگر متن که اولین بار توسط برم مولنار در سال ۱۹۹۰ معرفی شد اطلاعات بیشتر تو این مورد می تونید تو ویکی پدیا بخونید محبوبیت ویم به خاطر اینه که سعی می کنه انگشتای شما رو روی صفحه کلید و به صورت متمرکز نسبت به هم نگهداره که باعث میشه سرعت کد نویسی و نوشتن متن شما بیشتر بشه اما قبل از اینکه بتونید تو ویم سریع بشید باید اون یاد بگیرید که معمولا یادگیری نسبتا طولانی داره و نیاز به تمرین که بتونید توش ماهر بشید و راه بیافتید اما به محض اینکه به یه مهارت نسبی برسید می بینید که چقد لذت بخشه و کار شمارو سریع می کنه تو این مقاله یه سری میانبر و همچنین ترفندهای ویم بهتون معرفی می کنم که از قسمت راهنمای خود برنامه گرفته شده البته پیشفرض من برای این مطلب اینه که حداقل یکی از فیلمای آموزشی ویم رو دیده باشید

فهرست مطالب

  1. شروع کار با ویم
  2. چطور یه فایل رو با ویم باز و شروع به ویرایش کنیم؟
  3. چطور یک متن رو با ویم ویرایش کنیم؟
  4. جابجا شدن تو فایل در ویم
  5. جطور حرف ها یا کارکترهارو تو ویم پاک کنیم؟
  6. چطور با ویم یک گام به عقب یا به جلو بریم؟
  7. دستورات ویرایش کردن تو ویم
  8. خارج شدن از ویم
  9. چطوری راهنمای برنامه ویم رو پیدا کنم؟
  10. چطور کلمه یا متن را در ویم تغییر بدیم یا جایگزین کنیم؟
  11. insert mode در ویم ( مرجع کامل دستورات قابل استفاده در insert mode در ویم)
  12. ترفندهای ویم

شروع کار با ویم

برای شروع کار با ویم بهتره از آموزش ۲۰ دقیقه ای vimtutor استفاده کنید. علیرضا امیرصمیمی عزیز این قسمت رو به طور کامل توضیح داده که می تونید هم تو وبلاگش و هم تو آپارات فیلماش ببینید.

چطور یه فایل رو با ویم باز و شروع به ویرایش کنیم؟

vim path/filename

برای باز کردن یک فایل با ویم کافیه بنویسید ویم و مسیر فایل بهش بدید تا فایل براتون باز کنه. اگرم می خواید یه فایلی که وجود نداره رو ایجاد کنید و ویرایش کنید بازم می تونید از همین دستور استفاده کنید با این تفاوت که ویم با یه صفحه سیاه باز میشه و منتظر ویرایش کردن و ذخیره کردن فایل میشه

چطور یک متن رو با ویم ویرایش کنیم؟

ویم یه ویرایشگر مدال یا modal editor به این معنی که تو mode های مختلف رفتارهای مختلفی از خودش نشون میده. بیشترین mode هایی که ما باهاشون سروکار داریم normal mode و insert mode هستن. در normal mode کلیدهای که فشار می دیم به شکل دستور هستن. در insert mode هر کلیدی که فشار بدیم عملکرد طبیعی خودش تو صفحه داره. وقتی که وارد ویم میشیم مستقیما وارد محیط normal mode شدیم و کلیدها نقش دستوری دارن. برای ورود به بخش insert mode از کلید i استفاده می کنیم بعدش می تونیم متنی که می خوایم رو بنویسیم در نهایت بعد از ویرایش متن کلید Esc رو میزنیم که به محیط normal mode برگردیم.

:set show mode

دستور بالا به ما نشون می ده که الان تو کدوم mode هستیم این به خاطر داشته باشید که وقتی کلید : رو می زنید ویم به آخرین خط صفحه می ره و اینجاست که شما می تونید دستورات ویم رو وارد کنید

جابجا شدن تو فایل در ویم

در normal mode برای جابجا شدن از کلیدهای hjkl استفاده می کنیم:

  • h برای حرکت به چپ
  • j برای حرکت به پایین
  • k برای حرکت به بالا و
  • l برای حرکت به راست

جطور حرف ها یا کارکترهارو تو ویم پاک کنیم؟

برای پاک کردن یک حرف یا کاراکتر مکان نما رو روی اون ببرید و x رو بزنید. برای پاک کردن یه خط تو ویم می تونیم از dd استفاده کنیم. برای اینکه یک خط رو به خط دیگه بچسبونیم از J استفاده می کنیم

چطور با ویم یک گام به عقب یا به جلو بریم؟

فرض کنید یه متن رو ویرایش کردید و می خواید یه مرحله به عقب برگردید برای این کار می تونید از کلید u تو normal mode استفاده کنید و برای رفتن به جلو از ctrl + u استفاده می کنیم

دستورات ویرایش کردن تو ویم

برای اینکه بعد از یه حرف به حالت insert mode بریم از کلید a تو حالت normal mode استفاده می کنیم. و اگه بخوایم به آخر خط بپریم و شروع به ویرایش کنیم از A استفاده می کنیم

برای ایجاد و ویرایش یه خط جدید از o استفاده می کنیم و اگه بخوایم قبل از خط جاری یه خط اضافه کنیم از O استفاده می کنیم.

یادتون باشه همیشه برای تکرار هر دستور از اعداد می تونید استفاده کنید مثلا اگه بخواید ۹ تا حرف به جلو بریم می تونیم از 9l بزنیم

خارج شدن از ویم

برای خروج از ویم اگه فایل ویرایش کرده باشید ویم بهتون یه ارور نشون می‌ده اگه تغییراتی که دادی براتون مهم نباشه می‌تونید از !q: استفاده کنید و اگه ویرایشی تو فایل انجام نداده باشید با q: می تونید خارج بشید و اگه بخواید تغیراتتون رو ذخیره کنید و بعدش خارج بشید می تونید از wq: استفاده کنید که w برای ذخیره کردن فایل و q هم برای خروج

اگه بخواید فایلی که دارید باهاش کار می کنید به نسخه اصلی خودش برگرده می تونید از !e: استفاده کنید

چطوری راهنمای برنامه ویم رو پیدا کنم؟

برای رفتن به قسمت راهنمای ویم کافیه help: رو بزنید

چطور کلمه یا متن را در ویم تغییر بدیم یا جایگزین کنیم؟

جایگزین کردن یک کلمه یا متن با یک کلمه یا متن دیگر در ویم

:%s/four/4/g

این دستور می تونه برای جایگزین کردن همه کلماتی که تو متن تکرار شدن استفاده بشه. علامت % به این معنی که جایگزینی در تمام خطوط انجام بشه. حرف g هم به این معنی که تا آخر خطوط هر تکراری از کلمه جایگزین بشه. تو دستور بالا هر کلمه ای که شامل four باشه به 4 تغییر پیدا می کنه مثلا thirtyfour تبدیل میشه به thirty4 اگه ما نخوایم این اتفاق بیافته از دستور زیر استفاده می کنیم

:%s/\<four/4/g

مشخصه که این دستور هم یه مشکل داره و اونم اینه که مثلا fourteen رو تبدیل می کنه به 4teen که اگه نخوایم این اتفاق بیافته باید از دستور زیر استفاده کنیم

:%s/\<four\>/4/g

گزینه <\ در حالت جایگزین کردن به این معنی که اگه تا آخر کلمه شامل این حرف شد جایگزینی رو انجام بده

:%s/\<four\>/4/gc

اگه شما برنامه نویس باشید ممکنه بخواید four رو فقط تو کامنت ها تغییر بدید و تو کدهای اصلی تغییری ایجاد نکنه از اونجایی که این کار یه مقدار سخته برای تعیین هر تغییر از فلگ c استفاده کنید تا یه دستور برای تایید جایگزینی بهتون نشون بده

جایگزین کردن یک کلمه یا متن در چند فایل به کمک ویم

فرض کنید می خواید یک کلمه رو تو چند فایل جایگزین کنید. شما می تونید هر فایل به صورت جداگونه ویرایش کنید و به صورت دستی جایگزینی هارو انجام بدید. مثلا اگه یه سری فایل ++c داشته باشید که همشون پسوند cpp. داشته باشن و یا فانکشن تو همه این فایل ها باشه به نام GetResp که شما بخواید اون رو به GetAnswer تبدیل کنید مراحل زیر رو برای جایگزینی انجام بدید:

۱ – با دستور زیر کل فایل هایی که پسوند cpp. دارن رو باز کنید

۲ – شروع به ذخیره تو رجیستر q کنید

۳ –

Normal mode

ترفندهای جستجو در ویم

  • اگه بخوایم کلمه ای که روش هستیم رو به صورت رو به جلو پیدا کنیم از * و اگه بخوایم کلمه ای که روش هستیم به صورت رو به عقب پیدا کنیم از # استفاده می کنیم

Insert mode

چهار حالت برای خروج از insert mode

ESC

این حالت معمول خروج از حالت insert mode و رفتن به حالت normal mode

ctrl + c

برای خروج از محیط insert mode استفاده میشه اما همیشه کار نمی کنه

ctrl + [

برای خروج از insert mode میشه ازش استفاده کرد

ctrl + o

یک بار از insert mode خارج میشه و به محض اینکه شما اولین دستور رو تو normal mode بزنید دوباره به insert mode برمیگرده

میان بر های کاربردی در insert mode

ctrl + h

پاک کردن کاراکتر قبلی دقیقا کار backspace رو انجام میده

Del

کاراکتر بعدی رو پاک می کنه

Ctrl + w

کلمه قبل از مکان نمارو پاک می کنه

Ctrl + U

تو خط جاری کل متن قبل از مکان نما رو پاک می کنه

Ctrl + I

کار تب رو انجام می ده

Ctrl + J

یه خط جدید ایجاد میکنه در واقع کار enter رو انجام میده

Ctlr + M

یه خط جدید ایجاد میکنه در واقع کار enter رو انجام میده

Ctrl + K {char1} [char2]

یه دیاگراف وارد می کنه ( تو بخش دیاگراف بیشتر توضیح میدم)

Ctrl + N

تو اتوکامپلت کلمه مشابه بعدی رو پیدا میکنه

Ctrl + P

تو اتوکامپلت کلمه مشابه قبلی رو پیدا میکنه

Ctrl + R {register}

Ctrl + R Ctrl + R {register}

Ctrl + R Ctrl + O {register}

Ctrl + R Ctrl + P {register}

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

Ctrl + T

یک تب به ابتدای خط جاری اضافه می کنه

Ctrl + D

یک تب از ابتدای خط جاری رو پاک می کنه

Ctrl + E

کاراکتر زیر مکان نما رو وارد می کنه

Ctrl + X

وارد mode ctrl-X میشه که یه sub mode که دستورات داده شده با کلمات می تونن کامل بشن یا صفحه اسکرول بشه

Ctrl + X Ctrl + L

از کلیدهای خط جاری استفاده می کنه

Ctrl + X Ctrl + N

از کلید فایل جاری استفاده می کنه

Ctrl + X Ctrl + K

از کلیدهای دیکشنری استفاده می کنه

Ctrl + X Ctrl + T

از کلید های تیزر استفاده می کنه

Ctrl + X Ctrl + I

از کلید واژه های کل فایل های باز استفاده می کنه

Ctrl + X Ctrl + ]

از تگ ها استفاده می کنه

Ctrl + X Ctrl + F

از نام فایل ها استفاده می کنه

Ctrl + X Ctrl + D

Ctrl + X Ctrl + V

Ctrl + X Ctrl + U

Ctrl + X Ctrl + O

Ctrl + X s

Ctrl + X Ctrl + P

Visual mode

Visual line mode

برای ورود به این mode از میانبر shift + v استفاده می شه

ترفندهای ویم

ترفندهای حرکتی در ویم

  • برای عقب و جلو رفتن بهتر است از w برای پریدن به کلمه بعدی و b برای پریدن به کلمه قبلی استفاده کنیم
  • با f برای پیدا کردن کارکتر بعدی استفاده کنیم و بپریم سرش یا با t به قبلش کاراکتر بریم با F و T هم برعکس این کارارو انجام بدیم
  • اگه بخوایم چند تا مثلا r بریم جلوتر بهتره از fr و بعدش از . استفاده کنیم که دستور قبلی رو تکرار کنیم برای برگشتم از , استفاده کنیم

ترفندهای ویرایش در ویم

  • yy برای کپی کردن خطی که توش هستین استفاده کنیم و با p همون خط paste کنیم
  • dd برای پاک کردن خطی که توش هستین استفاده کنیم وقتی از dd استفاده می کنیم در واقع داریم خط رو کپی می کنیم و اگه p رو بزنیم همون خط paste کنیم
  • u برای برگشت به یک مرحله قبل استفاده کنیم
  • برای select کردن یک خط از shift + v استفاده کنیدکه وارد محیط v-line کنیم و هر تعداد خط که بخواید می تونید باهاش انتخاب کنیم
  • برای انتخاب کردن خطی که توش هستین به اضافه یک خط پایین تر از yj استفاده کنیم
  • برای اضافه کردن یک خط زیر یا روی خطی که توش هستین از o یا O استفاده کنیم
  • برای paste کردن یه خط بالا از P استفاده کنیم
  • برای اضافه کردن کارکتر بعد از مکان نما به جای i از a استفاده کنیم
  • برای اینکه بریم اول خط و شروع به ویرایش کنیم بهتره از Shift + i استفاده کنیم و برای اینکه به انتهای خط بریم و شروع به ویرایش کنیم بهتره از shift + a استفاده کنیم

ترفندهای جستجو در ویم

  • برای جستجو از / استفاده کنیم و n برای پیدا کردن کلمه جستجو شده بعدی N برای کلمه جستجو شده قبلی
  • برای پیدا کردن کلمه بعدی که الان روش هستیم از * و برای پیدا کردن قبلیش از # استفاده می کنیم

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

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