آموزش سریع Vim
پیشنوشت: این نوشته یک متن آموزشی سریع در مورد ابزار یا مفهومی خاص هست. چیزهایی که در پایین میخوانید عصاره اصلی چیزی هست که باید سریعا یاد بگیرید برای استفاده از این ابزار یا مفهوم. این سری نوشتهها رو با نام WTF Course منتشر میکنم.
Vi یک ویرایشگر متن است که توسط بیل جوی در سال ۱۹۷۶ برای سیستم عامل Unix ساختهشده است. نام Vi از دو حرف اول کلمه Visual گرفته شده است. علت نامگذاری Visual از آنجا میآید که در آن زمان Vi نسبت Ex که یک ویرایشگر خطی بود امکان ویرایش کل سند با امکانات کموبیش Visual میداد. خود Ex نسخه توسعهیافتهتر Ed بود که در سال ۱۹۷۱ توسط کن تامپسون نوشته شده بود.
Vim (یا Vi Improved به معنی Vi بهبودیافته) یک ویرایشگر متن است که بر مبنای Vi توسط برام مولینار در سال ۱۹۸۸ (بیش از ۳۰ سال پیش) ساختهشده است.
Vim تمامی امکانات Vi رو داراست ولی بهبودهایی از لحاظ عملکرد و توسعهپذیری داشته است. همچنین Vim بیشتر از Vi به سیستمعاملهای دیگر پورت شدهاست.
Vim تقریبا روی هر سیستم شبهیونیکسی (مثل لینوکس و BSD) بصورت پیشفرض نصب شده. آخرین نسخهی اون در زمان نوشتن این پست ۸.۱ هست.
علت اول محبوبیت Vim این است که نیاز نیست حین کار با آن دست از کیبرد بردارید. همهچیز حتی پیچیدهترین تغییرات بر روی متن (یا کد) را میتوان با کلیدها و رشتههای میانبر انجام داد. هرچند اگر برای یادگیری این میانبرها مقداری وقت صرف نکنید همین مسئله تبدیل میشود به معایب Vim.
علت دوم این است که Vim تحت خط فرمان اجرا میشود. وقتی با SSH به سروری در آلمان وصل میشوید هیچ محیط گرافیکی برای اجرای ادیتورهای امروزی مثل Sublime یا Atom و غیره وجود ندارد. Vim تقریبا تنها راهکار شما برای ویرایش کد بصورت راهدور هست.
علت سوم اینکه Vim به شدت توسعهپذیر هست. برای هرکاری یک افزونه برای آن وجود دارد. اگر کمی وقت صرفش کنید میتوانید بیشتر از PHPStorm از Vim کار بکشید.
علت چهارم این است که گردنمان کلف است و حال میکنیم که کسی از ابزار کارمان سردر نمیآورد وگرنه گزینههای منطقیتری مثل Micro وجود دارد که تحت همان خط فرمان از ماوس پشتیبانی میکند.
اطلاعات اضافی:
(برای کسانی که به فلسفه پشت هر ابزار هم علاقهمند هستند.)
– Vim اولین نرمافزاری است که با لایسنس خیریهافزار منتشر شده. خیریهافزار به مجوزی گفته میشود که از شما میخواهد در ازای استفاده از این مجوز به خیریه مدنظر سازنده محصول کمک کنید.
– Vim سرور و سالار و پیروز همیشگی جنگ ویرایشگرهاست.
شروع:
ویرایشگر Vim از سه Mode یا حالت Insert، Command و Visual تشکیل شده. هر حالت تعیین میکند که با فشردن دکمههای (حروف) کیبرد چه عملی انجام شود. حالت Insert برای تایپ و حالت Visual برای کارهایی مثل انتخاب کاراکترها/متنها و حالت Command برای ذخیره سند یا جستجو در متن سند استفاده میشود.
برای انتقال از Command Mode به Insert Mode (که بتوانید تایپ بکنید) میتوانید از کلیدهای a یا i (هم بزرگ هم کوچک) استفاده کنید. تفاوتشان به ظاهرشدن نشانگر در بخشهای متفاوت متن هست که در این نوشته برای مخاطب مهم نیست.
برای انتقال از Insert Mode و Visual Mode به Command Mode کلید Esc کافیست.
برای حرکت در Command Mode میتوانید از کلیدهای جهت استفاده کنید. در صورتی که به گذشته سفر کردهاید و کیبردتان کلیدهای جهت ندارد و یا میخواهید خفن دیده شوید کلیدهای HJKL بهترتیب از چپ بعنوان چپ، پایین، بالا، راست برای جایگزین استفاده کنید.
برای نمایش فایلهای شاخهی فعلی از دستور :Ex استفاده کنید.
برای برگشت به عقب (همان Ctrl+Z خودمان) از کلید u در حالت Command Mode استفاده کنید. برای تکرار مجدد/برگشت به جلو یا همان ReDo از میانبر Ctrl+ای استفاده کنید.
برای نمایش شماره سطرها دستور set number رو بعد از کاراکتر : تایپ کنید.
برای جستجو در کل در حالت Command ابتدا / سپس متن مورد نظر رو بنویسید و سپس Enter رو بزنید. برای وارد شدن به حالت ویرایش کلید i رو بزنید. برای انتقال نشانگر به گزینهی بعدی پیداشده کلید n رو فشار بدید. برای برگشت Shift+n.
در صورتی که میخواهید از جایی که نشانگر قرار دارد به بعد را جستجو کنید به جای / کاراکتر ? بگذارید.
برای Replace یا جایگذاری text1 با text2 از دستور s/text1/text2/gc% استفاده کنید. g به معنی تمامی نتایج ممکن و c به معنای ابتدا تایید بگیر سپس تعویض کن. در صورتی که c رو ننویسید بدون تایید تمامی گزینههای پیدا شده را تعویض میکند.
برای کپیکردن مقداری که در Visual Mode انتخاب کردهاید از y، برای کپیکردن کل خط از yy، برای کپیکردن کلمه از yw و برای Paste کردن از p یا P استفاده کنید.
برای Cutکردن هم به ترتیب d و dd و dw رو استفاده کنید.
برای تکرار دستور قبلی از کلید . استفاده کنید.
برای ذخیرهکردن فایل برای اولین بار از w filename: استفاده میکنیم که filename نام فایل ما است. دفعات بعد برای ذخیره کردن از w: استفاده میکنیم.
برای خروج از q: استفاده میکنیم، اگر که فایل خود را ذخیره نکرده باشیم Vim به ما اخطاری به مضمون “no write since last change” میدهد که از ما میخواهد فایل خود را ذخیره کنیم. ولی اگر نمیخواهید که این پیغام را به شما بدهد و قصد ندارید تا تغییراتی که در فایل دادهاید اعمال شود، از !q: استفاده کنید. تلفیق این دو برای ذخیره و خروج دستور پرکاربرد qw: هست.
دستوران فوق در ۹۰٪ مواقع کارتان را راه میاندازد. ولی در صورتی که میخواهید بیشتر یاد بگیرید منبع نوشته بدردتان میخورد.
بیشتر:
– پلاگین PHP برای Vim
– سند راهنمای دانشگاه میسیسیپی جنوبی
– اگه هوس کردید بدونید Ed چه شکلی بود که Vi ویرایشگر Visual محسوب میشده اینجا رو ببینید.
شنبه، ۱۸ جولای ۲۰۲۰