Vim چیست؟ – معرفی ویرایشگر ویم و آموزش دستورات به زبان ساده
هنگامی که با توزیعهای لینوکس مختلف کار میکنیم، وظایف مختلفی وجود دارند که برای کار بر روی آنها نیازمند یک ویرایشگر متنی یا همان کد ادیتور هستیم. کارهایی از جمله برنامه نویسی، اسکریپت نویسی، ویرایش متن یا پیکربندی فایلها و بسیاری از موارد دیگر نیازمند ویرایش هستند. میتوان چندین ویرایشگر متنی محبوب را در محیط سیستم عامل لینوکس خود استفاده و نصب کرد. با این حال، در این مطلب علاوه بر ارائه پاسخ پرسش Vim چیست به مزایا و ویژگیهای ویرایشگر متن Vim و این مسئله خواهیم پرداخت که چرا استفاده از ویم در لینوکس بسیار عالی و کاربردی است.
ویرایشگر متن Vim چیست ؟
Vim (وی آی ام، یا ویم تلفظ میشود) یک ویرایشگر متن یونیکس به حساب میآید که در سیستم عاملهای لینوکس، BSD و مک OS گنجانده شده است و اغلب آن را به واسطه سریع و کارآمد بودنش میشناسند. ویم یا همان Vim تا حدی کوچک است که میتواند در ترمینال اجرا شود، اگرچه دارای یک رابط گرافیکی نیز هست.
اما دلیل محبوبیت این ویرایشگر بیشتر به این خاطر است که میتوان آن را به طور کامل با صفحه کلید و بدون نیاز به منو یا ماوس کنترل کرد. به عنوان مثال، برای درج متن در یک فایل، دکمهای خاص را فشار میدهیم و سپس متن موردنیاز خود را تایپ میکنیم. برای پیمایش یا صدور فرمانهایی مانند Save ،Backspace ،Home ،End و سایر موارد، دکمه Esc را روی صفحه کلید خود فشار میدهیم و سپس هر کلید یا کلید ترکیبی مربوط به عمل مورد نظر را میفشاریم.
در مقایسه با آنچه کاربران کامپیوتر امروزی انتظار دارند، این روشی بسیار متفاوت برای ویرایش متن به حساب میآید. اما استفاده از ویرایشگر Vim، روشی است که مدیران یونیکس در سراسر جهان برای فایلهای پیکربندی، تغییرات آنها، اسکریپتها و موارد دیگر از آن استفاده میکنند.
تاریخچه ویرایشگر Vim چیست ؟
Vim به عنوان نسخه جدید و بهبود یافتهای از ویرایشگر Vi شناخته میشود و وقتی ویم در اواخر دهه ۱۹۷۰ توسط بیل جوی ساخته شد، مخفف عبارت «Vi Improved» (ویرایشگر بهبودیافته) را به عنوان نام برای آن برگزید. قبل از Vi، افراد کمی تصور میکردند که کامپیوتر بتواند به عنوان نوعی ماشین تحریر تعاملی عمل کند.
در ابتدا فایلهای متنی با دستوراتی (مانند ed) ویرایش میشدند که یک خط خاص را پیدا میکرد و متن را درج یا حذف میکرد. اما با استفاده از ویرایشگر Vim و بدون دخالت در اصل برنامه، میتوان متنهایی از اسکریپت و کدهای آن را تغییر و بهبود داد. Vi در ابتدا برنامهای جدید بود که به کاربران امکان میداد وارد یک صفحه ترمینال شوند که متن کل فایل را به آنها نشان دهد، همچنین به توسعهدهندگان اجازه میداد کدهای خود را هر وقت بخواهند ویرایش کنند.
افراد زیادی از Vim به صورت روزانه استفاده میکنند و این ادیتور برای آنها بسیار کاربردی است. در مکالمههای معمولی دو اصطلاح Vi و Vim معمولاً به جای یکدیگر استفاده میشوند و در واقع برنامهنویسان معمولاً به همان Vim اشاره میکنند، زیرا نسخه بهبودیافتهای از Vi محسوب میشود.
در برخی از سیستمهای POSIX (واسط قابل حمل سیستم عامل)، دستور vi اشارهگری به Vim است (یا Vim فقط Vi نامیده میشود). با این حال، برخی از سیستمها از Vi استفاده میکنند و در صورت نیاز باید Vim را جداگانه نصب کنیم. برای بررسی اینکه آیا Vim در سیستم ما نصب شده است یا خیر، از دستور زیر در صفحه ترمینال خود استفاده میکنیم.
1which vim
علاوه بر این، برخی از توزیعها چند مدل متفاوت از Vim را ارائه میدهند. معمولاً، این بدان معناست که مدل مینیمالی وجود دارد که از Vi قدیمی تقلید میکند و با اضافه کردن Vim-isms برای قابل استفاده کردن آن مدل قدیمی، مدل پیشرفتهتری از Vim امروزی را ارائه میدهد. بهترین راه برای تعیین اینکه چه چیزی در دسترس است، جستجو در «مدیر بسته» (Package Managers) خود برای هر بسته حاوی رشته "vim" و سپس نصب بستهای است که بیشترین ویژگیها را (مانند Vim-Enhanced در فدورا) دارد.
علت استفاده اکثر برنامه نویسان و کاربران لینوکس از Vim چیست؟
Vim ویرایشگر پیشفرض در تمام سیستمهای POSIX است. اگر به تازگی سیستم عاملی را نصب کرده باشید یا در محیطی با قابلیتهای حداقلی نیاز به تعمیر سیستمی از طریق Boot باشد یا نتوانید به هر دلیلی به ویرایشگر دیگری دسترسی داشته باشید، Vim مطمئناً در دسترس و قابل استفاده خواهد بود. در حالی که میتوان ویرایشگرهای کم حجم و سبُک دیگری مانند GNU Nano یا Jove را در سیستم خود جایگزین کرد، اما این فقط Vim است که در تمامی سیستمهای دیگر قابل استفاده خواهد بود.
کارایی این ویرایشگر در طراحی و عملکرد بالای آن نیز بهگونهای بوده که به سختی قابل چشمپوشی است. کلیدهای رابط برای استفاده از ویرایشگر ویم، مبتنی بر صفحه ترمینال هستند و به منوها یا لوازم جانبی فانتزی یا حتی کلیدهای اضافی مانند Ctrl یا Alt متکی نیست. Vim از کلیدهای مشترک برای هر صفحه کلید، صرف نظر از زبان، طرحبندی یا نوع دستگاه استفاده میکند و مواردی را هم که چندان معمول نیستند میتوان به راحتی دوباره تنظیم کرد.
چگونه از Vim استفاده کنیم ؟
توسعهدهندگان این ویرایشگر، vimtutor را ایجاد کردهاند که راهنمایی ساده و تعاملی از اصول اولیه به حساب میآید. اگرچه Vim سرشار از پتانسیل است، فقط چند دکمه کنترلی در آن وجود دارد که برای استفاده از آنها باید آموزش ببینیم. برای شروع و ورود به Vim، اگر قصد استفاده از نسخه ترمینال آن را داشته باشیم، داخل صفحه ترمینال عبارت vim و سپس جلوی آن نام فایلی را تایپ میکنیم که نیاز به ویرایش دارد.
ولی اگر نسخه دسکتاپ آن را استفاده میکنید، نرم افزار gvim را باز کنید. برای ویرایش متن داخل این ویرایشگر، نیاز است برخی دستورات را آموزش ببینیم که در ادامه مطلب Vim چیست به فهرست دستورات پایه و مهم آن اشاره شده است.
آموزش تصویری استفاده از Vim در ترمینال
اگر علاقهمند به استفاده از ویرایشگر Vim در صفحه ترمینال هستید، ابتدا باید از نصب آن در سیستم عامل خود مطمئن شوید. در ادامه مطلب به نحوه نصب Vim در توزیعهای مختلف لینوکسی میپردازیم. در این بخش برای انجام قدم به قدم کار از ابتدای مسیر اقدامات لازم را شرح میدهیم.
در اولین گام، دستور which vim را در ترمینال وارد میکنیم تا بررسی کنیم آیا ویم نصب هست یا خیر و در صورتی که با خطا مواجه شویم، آنگاه نیاز به نصب Vim خواهیم داشت. طبق مثال تصویری در این بخش، از طریق دستور زیر در توزیعی بر پایه آرچ میتوانید به نصب این ویرایشگر بپردازید.
1$ sudo pacman -S vim
با وارد کردن دستور بالا در ترمینال، خروجی به صورت تصویر زیر خواهد بود.
برای اطمینان از نصب Vim می توانیم دوباره دستور which vim را در ترمینال وارد کنیم.
پس از نصب، لازم است وارد مسیری شویم که فایل مورد نظر ما برای ویرایش در آن بخش قرار دارد، یا در صورتی که آدرس دقیق فایل را میدانیم همان را مستقیما آدرسدهی میکنیم. در این مثال، وارد مسیر ~/.config/manjaro میشویم تا فایل مورد نظر خود را برای ویرایش پیدا کنیم. با استفاده از دستور ls میتوانیم فهرستی از محتویات داخل پوشه مربوطه را مشاهده کنیم.
و در انتها با دستور vim همراه با نام فایلی که آن را پیدا کردهایم به ویرایش آن میپردازیم.
برای ویرایش کد یا اسکریپت داخل فایل، نیاز به یادگیری برخی از کلیدهای میانبُر داریم و بنابراین در ادامه مطلب Vim چیست به بررسی این کلیدها میپرازیم.
نحوه استفاده از حالت های مختلف Vim مثل حالت عادی، Insert، بصری و دستوری
حالتهای Vim موردی است که احتمالا در ابتدا شما را گیج میکند. وقتی Vim را راهاندازی میکنیم، چیزی را که روی صفحهکلید خود کلیک میکنیم، تایپ نمیشود، زیرا در حالت «درج» نیستیم. در عوض، حالت عادی که در آن قرار داریم به ما این امکان را میدهد تا دستورات توضیح داده شده در زبان Vim را انجام دهیم.
Vim تنها ویرایشگری است که با استفاده از آن ویرایش متن ر میتوانا به جای شروع از یک صفحه خالی بهگونهای بهینهتر انجام داد و این خود دلیل دیگری است که Vim نحوه کار ما را بسیار کارآمدتر میکند. حالتهای مختلفی برای هر مرحله از کار به صورت زیر در ویم وجود دارند.
- حالت عادی برای خواندن کدها و پیمایش سریع است.
- حالت Insert برای زمانی است که میخواهیم کد یا متنی را اضافه کنیم.
- حالت بصری این ویرایشگر منحصر به فرد است، مانند برجسته کردن متن با ماوس، اما با حرکات Vim بالا.
- حالت فرمان، جایی که میتوان دستورات لینوکس مانند قالببندی یک فایل JSON را وارد و آنها را در Vim اجرا کرد. در این حالت میتوان از دستورات Vim مانند sort برای مرتبسازی فایلهای خود استفاده کرد.
آموزش دستورات Vim
برای استفاده از ویرایشگر Vim نیاز است با کاربرد برخی کلیدهای میانبر آشنا شویم. برای این منظور باید فایل متنی خود را در صفحه ترمینال باز کرده و برای انجام هر کاری، ابتدا دکمه مربوط به آن را وارد و سپس متن خود را ویرایش کنیم. به عنوان مثال برای اضافه کردن متن در داخل فایل، ابتدا دکمه i (اولین حرف کلمه Insert) را وارد کنید تا به Vim بفهمانید قصد اضافه کردن متن را دارید.
در ادامه فهرست کامل دستورات Vim را مشاهده میکنیم.
- i : اضافه کردن
- a : اضافه کردن بعد از مکاننما
- A : اضافه کردن به انتهای سطر
- J : اتصال دو سطر به یکدیگر
- dd : حذف یک سطر
- D : حذف حروف از مکاننما
- x : حذف یک حرف
- r : تعویض یک حرف
- R : تعویض یک یا چند حرف
- u : بی اثر کردن فعالیت قبلی
- o : اضافه کردن یک خط در پایین
- O : اضافه کردن یک خط در بالای cursor
- . : تکرار فعالیت قبلی (با فشار دادن نقطه «.» فرمان قبلی تکرار خواهد شد)
فرمانهایی که میتوان با وارد کردن «:» به Vim داد (مکاننما به سطر آخر صفحه نمایش منتقل خواهد شد) را در ادامه معرفی میکنیم. لازم به ذکر است منظور از file name در این بخش، نام فایلی است که در حال ویرایش آن هستیم.
- x : ذخیره و خارج شدن از ادیتور
- w : ذخیره کردن بدون خارج شدن از ادیتور
- q : خارج شدن از ادیتور بدون ذخیره سازی (در صورتی که تغییراتی در فایل داده باشید پیام خطا ظاهر خواهد شد و ادیتور با وارد کردن !q بدون ذخیرهسازی به پایان خواهد رسید)
- w file name : ادیتور، اطلاعات را بر روی file name ذخیره خواهد کرد. (در صورتی که فایل file name وجود داشته باشد، ویرایشگر پیام خطا به همراه پیشنهاد لازم را نمایش خواهد داد)
- r file name : در این حالت فایل file name خوانده شده و بعد از جایی که مکان نما وجود دارد قرار خواهد گرفت.
- set nu : شمارهگذاری سطرها (شمارهها در فایل ذخیره نخواهد شد)
- set nonu : حذف شمارهها از سطرها
- string/ : پیدا کردن رشته داده شده در فایل پیدا و علامت گذاری آن
- n : (مخفف Next) قرار گرفتن مکاننما بر روی رشته مورد درخواست و قرار گرفتن مکاننما روی رشته قبلی با هر بار با فشار دادن حرف n
در تصور زیر نمونه فایلی را مشاهده میکنیم که با استفاده از ویرایشگر Vim در حال تغییرات در متن آن هستیم.
نصب Vim در لینوکس
ویرایشگر Vim ویرایشگر متن «اپن سورس» (منبع باز) و رایگان در دسترس عموم محسوب میشود که هم برای رابط کاربری گرافیکی برنامه و هم برای خط فرمان طراحی شده است و میتوان Vim را روی هر سیستمی نصب کرد. ویرایشگر ویم در سیستم عامل مک، لینوکس و ویندوز قابل استفاده است.
در اکثر سیستمهای لینوکس امروزی، Vim از قبل و بهطور پیشفرض نصب شده است. اگر نصب نباشد، میتوان با استفاده از دستورات زیر آن را روی توزیعهای لینوکس مختلف نصب کرد. برای نصب بر روی توزیع اوبونتو یا Debian دستور زیر را داخل ترمینال وارد کنید.
1$ sudo apt install vim
برای نصب روی توزیع CentOS لینوکس، از دستور زیر استفاده کنید.
1$ sudo yum install vim
و اگر سیستم عامل لینوکسی شما، توزیع Fedora است، میتوانید دستور زیر را در صفحه ترمینال وارد کنید.
1$ sudo dnf install vim
اگر در سیستم عاملهای برپایه آرچ لینوکس هستید مانند Manjaro، میتوانید از دستور زیر برای نصب Vim استفاده کنید.
1$ sudo pacman -S vim
مستندات مربوط به Vim به خوبی نوشته شده و استفاده از آن بسیار آسان است. ویم یک کتابچه راهنمای داخلی ارائه میدهد که با استفاده از دستور help داخل ترمینال قابل دسترسی است. این راهنما جزئیات بیشتری را نسبت به صفحه Vim ارائه میدهد.
مزایا و ویژگی های Vim چیست ؟
در این بخش از مطلب Vim چیست برخی از ویژگیهایی را معرفی میکنیم که برتری این ویرایشگر نسبت به سایر ویرایشگرهای متنی را بیان میکند.
همچنین میتوان با در نظر گرفتن این ویژگیها، نسبت به انتخاب ویرایشگر مورد نظر خود برای بررسی کدهایتان مطمئنتر باشید.
انجمن Vim
Vim یکی از قدیمیترین و محبوبترین ویرایشگرها است، از این رو جامعه بزرگی برای پشتیبانی از کاربران دارد. بسیاری از کدنویسان و مدیران سیستمی که با آنها ملاقات میکنید، کاربر روزانه یا گاهبهگاه Vim هستند. انجمنهایی مانند Stack Over Flow به راحتی توسعهدهندگانی را پیدا میکنند تا نکاتی را در مورد Vim با بقیه کاربران به اشتراک بگذارند.
پشتیبانی Vim از تنظیمات دستی
تنظیمات دستی به این معنی است که ویرایشگر متن Vim برای ما این امکان را فراهم میکند که همان تنظیماتی که میخواهیم را در سیستمهای لینوکسی خود وارد کنیم. همچنین میتوان تنظیمات را با دوستان خود در اینترنت نیز به اشتراک گذاشت، فقط باید چند فایل و دایرکتوری را کپی کنیم و هیچ کار دیگری لازم نیست.
Vim قابل تنظیم و توسعه
Vim پشتیبانی گستردهای از پلاگینهای مختلف ارائه میدهد. میتوان از افزونههای زیادی استفاده کرد که عملکرد Vim را افزایش میدهند. همچنین میتوان در مورد پلاگینهای ویم در مقالات دیگر نیز مطالعه کرد، زیرا گزینههای پیکربندی زیادی وجود دارند که این امکان را میدهند تا Vim را به روش خودمان تنظیم کنیم.
مصرف منابع سیستمی کمتر در Vim
نقطه قوت اصلی Vim سادگی و کوچکی آن است. بنابراین، این ویرایشگر متن در مقایسه با سایر ویرایشگرهای متن مانند emacs ،nano و به ویژه ویرایشگرهای گرافیکی، از منابع سیستم کمتری استفاده میکند. Vim کم حجم و بسیار سریع است، حتی زمانی که با استفاده از آن تعداد زیادی از کدهای منبع را تغییر میدهیم. میتوان آن را از طریق ssh برای عملیات مختلف از راه دور در هر نوع سرور اجرا کرد.
علاوه بر این، Vim برخی از کلیدهای اتصال موثر مهم را ارائه میدهد. بنابراین، این امکان فراهم است تا هر نوع کار قابل تصوری را با استفاده از صفحه کلید انجام دهیم.
پشتیبانی Vim از چندین قالب فایل و زبان برنامه نویسی
ویرایشگر Vim به طور پیشفرض از چندین فرمت فایل و چندین زبان برنامه نویسی پشتیبانی میکند. با استفاده از Vim، میتوان هر نوع فایلی را با بررسی نام فایل و با بررسی محتوای فایل برای متن خاص شناسایی کرد.
Vim ادیتوری بسیار قدرتمند
Vim ویرایشگر متن قدرتمندی است که با استفاده از آن امکان انجام سریع وظایف مختلف فراهم میشود. هنگامی که نحوه کار با Vim را یاد گرفتیم، میتوانیم وظایف را خیلی سریع و به شیوهای کارآمد و معمولاً فقط با صفحه کلید (بدون ماوس) انجام دهیم. برخی از ویژگیهای مهم vim شامل رجیسترها، ماکروها، تکرار دستورات، اشیای متنی، تکمیل خودکار، جستجو و جایگزینی جهانی میشود.
Vim جالب و سرگرم کننده
یادگیری Vim بسیار جالب و سرگرم کننده است. هنگامی که به طور گسترده و روزانه با Vim کار کنیم، احساس خواهیم کرد کارهای شگفت انگیزی را میتوان با آن انجام داد.
پلاگین های Vim چیست ؟
Vim قابل توسعه است، به این معنی که میتوان از طریق افزونهها به آن ویژگی اضافه کرد. Vim با سابقه چندین دهه، افزونههای مفید زیادی برای انتخاب دارد و حتی بسیاری از سایتها مانند Vim Awesome، به طور خاص به پلاگینهای Vim اختصاص داده شدهاند.
میتوان پلاگینها را به صورت دستی یا با یک مدیر بسته Vim مانند Vim-plug نصب کرد. اگر یک کاربر معمولی Vim هستید، باید گفت که به راحتی میتوان از تنها طریق قابلیت افزونهها به Vim وابسته شد. از طرحهای رنگی ساده گرفته تا مدیریت فایلها، همه آنها را میتوان با استفاده از پلاگینها به Vim اضافه کرد.
تجربه شخصی یک توسعه دهنده در مورد Vim
طبق نظر یک برنامهنویس و کاربر حرفهای لینوکس که سابقه زیادی در کار با لینوکس دارد و از VS Code ،Sublime ،Notepad++ و TextMate استفاده کرده است، برخی میانبرها مانند cmd (shift) بالاخره در حالتی غیر قابل استفاده خواهند بود و جابهجایی با کلیدهای جهتنما، به تنها گزینه پرش سریعتر تبدیل میشود.
بعد از گذشت مدت زمان زیادی از شروع برنامه نویسی، معمولاً در نهایت با محدودیتهایی مواجه میشویم. هر کاری را سریع انجام میدهیم، اما از یک حد خاص سریعتر نخواهیم شد. آنجا است که متوجه خواهیم شد Vim تنها ویرایشگری به حساب میآید که با گذشت زمان میتوان سریعتر و سریعتر از آن استفاده کرد.
Vim تنها بر اساس کلیدهای میانبر قابل استفاده است. وقتی این را کشف و کمی با آن کار میکنیم، ممکن است احساس کنیم که چرا این میانبرها و در واقع زبان Vim را خیلی زودتر از این یاد نگرفتهایم.
برای رسیدن به هر موقعیت خاصی برای جابهجایی و پرش کردن، یک کلید میانبر در Vim وجود دارد. در واقع مثل یک بازی است که هر بار موقع استفاده از آن به این میاندیشیم که آیا میتوانیم از میانبرهای کمتری برای انجام یک ویرایش خاص در Vim استفاده کنیم. اینجا جایی است که بسیاری از کاربران Vim از کدنویسی و نوشتن لذت زیادی میبرند.
شاید در ابتدای استفاده و یادگیری از ویرایشگر Vim سرعت ما بسیار کند باشد، اما پس از بالا رفتن از سربالایی منحنی یادگیری، به جرئت میتوان گفت همچنان یادگیری Vim یکی از قویترین مهارتهایی است که تا به حال در حرفه خود آموختهایم و برای کار کردن و امرار معاش با کامپیوتر یادگیری آن بسیار ضروری به نظر میرسد.
جمع بندی
در مطلب Vim چیست برخی از ویژگیهای مفید ویرایشگر متن Vim را توضیح دادیم. هنگامی که از این ویرایشگر در سیستم خود استفاده میکنیم، میتوان ویژگیهای بیشتری را کشف کرد و توصیه میشود حتماً از دوره آموزش Vim برای یادگیری کامل این کد ادیتور محبوب و کاربردی استفاده شود.
سوالات متداول
در این بخش از مطلب Vim چیست به بررسی تعدادی از سوالات رایج پیرامون ویم میپردازیم.
ویرایشگر Vim در لینوکس چیست ؟
نام Vim مخفف Vi Improved است. این ویرایشگر نسخه پیشرفتهای از ویرایشگر متن Vi به حساب میآید و معمولاً به شکل CLI دیده میشود. با این حال، یک نسخه رابط کاربری گرافیکی در دسترس برای استفاده استاندارد دسکتاپ نیز دارد.
Vim برای چه مواردی استفاده میشود ؟
ویراشگر Vim ویرایشگر متنی برای یونیکس است که به همراه Linux ،BSD و macOS ارائه میشود. این ویرایشگر بسیار سریع، قدرتمند و شناخته شده، تا حدی که برنامه کوچکی است که میتواند در صفحه ترمینال اجرا شود. محبوبیت این ویرایشگر به این خاطر است که میتوان آن را کاملاً بدون منوها یا ماوس تنها با صفحه کلید مدیریت کرد.