اگر با سیستمعامل لینوکس یا محیطهای مبتنی بر ترمینال کار کرده باشید، احتمالاً نام Vim را شنیدهاید. Vim یکی از محبوبترین و قدرتمندترین ویرایشگرهای متنی در دنیای برنامهنویسی و مدیریت سیستم است که سالهاست توسط توسعهدهندگان، مدیران سرور و کاربران حرفهای مورد استفاده قرار میگیرد. اگرچه این ویرایشگر در نگاه اول ممکن است پیچیده و حتی کمی گیجکننده به نظر برسد، اما پس از آشنایی با منطق عملکرد و حالتهای مختلف آن، سرعت و بهرهوری شما در ویرایش فایلهای متنی بهطور قابل توجهی افزایش خواهد یافت.
در این آموزش، از مفاهیم پایه شروع میکنیم و بهصورت گامبهگام با نصب Vim، حالتهای مختلف کاری، دستورات پرکاربرد و مهمترین قابلیتهای آن آشنا میشویم. در پایان این راهنما، دانش کافی برای ایجاد، ویرایش، ذخیرهسازی و مدیریت فایلها در Vim را خواهید داشت و میتوانید با اطمینان بیشتری از این ابزار قدرتمند در محیطهای لینوکسی و سرورهای راه دور استفاده کنید.
VIMچیست؟
Vim که مخفف عبارت Vi Improved است، یک ویرایشگر متن رایگان، متنباز و چندسکویی (Cross-Platform) محسوب میشود که برای نخستین بار در سال ۱۹۹۱ توسط «برام مولنار» (Bram Moolenaar) توسعه یافت و منتشر شد. این ویرایشگر بهعنوان نسخهای بهبودیافته از ادیتور قدیمی Vi طراحی شد و با اضافه شدن قابلیتهای جدید، به یکی از محبوبترین ابزارهای ویرایش متن در میان کاربران لینوکس و یونیکس تبدیل شد.
ریشه Vim به ویرایشگر Vi بازمیگردد؛ ابزاری که در سال ۱۹۷۶ توسط «بیل جوی» (Bill Joy) برای سیستمهای یونیکسی توسعه داده شد. اگرچه Vi در زمان خود یکی از پیشرفتهترین ویرایشگرهای متنی به شمار میرفت، اما با گذشت زمان و ظهور ابزارهای قدرتمندتری مانند Emacs، محدودیتهای آن بیشتر نمایان شد. به همین دلیل، برام مولنار با حفظ فلسفه اصلی Vi و افزودن امکاناتی مانند هایلایت سینتکس، قابلیت Undo چندمرحلهای، پشتیبانی از پلاگینها و ابزارهای پیشرفته جستجو و جایگزینی، Vim را توسعه داد.
امروزه Vim به دلیل سرعت بالا، مصرف بسیار کم منابع، قابلیت شخصیسازی گسترده و امکان کار کامل تنها با استفاده از صفحهکلید، یکی از پرکاربردترین ویرایشگرهای متن در دنیای توسعه نرمافزار و مدیریت سرور محسوب میشود. بسیاری از برنامهنویسان، مدیران سیستم و متخصصان DevOps از Vim برای ویرایش فایلهای پیکربندی، توسعه کد و مدیریت سرورهای لینوکسی استفاده میکنند؛ زیرا این ویرایشگر حتی در محیطهایی که رابط گرافیکی در دسترس نیست نیز عملکردی سریع و قابل اعتماد ارائه میدهد.
نصب VIM
پیش از شروع کار با Vim، ابتدا باید مطمئن شوید که این ویرایشگر روی سیستم شما نصب شده است. خوشبختانه Vim روی اکثر سیستمعاملهای محبوب از جمله لینوکس، ویندوز و macOS در دسترس است و فرآیند نصب آن پیچیدگی خاصی ندارد.
نصب Vim در ویندوز
برای نصب Vim در ویندوز، کافی است فایل نصب (Installer) را از وبسایت رسمی VIM دانلود کرده و مراحل نصب را مانند سایر نرمافزارهای ویندوزی دنبال کنید. پس از اتمام نصب، میتوانید Vim را از طریق Command Prompt، PowerShell یا میانبر ایجادشده در منوی Start اجرا کنید.
نصب Vim در لینوکس
در بسیاری از توزیعهای لینوکس، Vim بهصورت پیشفرض نصب شده است. با این حال، اگر این ویرایشگر روی سیستم شما موجود نباشد، میتوانید آن را از طریق مدیر بسته توزیع خود نصب کنید. در توزیعهای مبتنی بر Debian و Ubuntu از دستورات زیر استفاده کنید:
sudo apt-get update
sudo apt-get install vim
پس از اتمام نصب، برای اطمینان از نصب صحیح Vim دستور زیر را اجرا کنید:
which vim
در صورت نصب موفق، مسیری مشابه /usr/bin/vim نمایش داده خواهد شد که نشان میدهد فایل اجرایی Vim در سیستم شما در دسترس است.
نکته قابل توجه این است که در اکثر سرورهای لینوکسی و بهویژه سرویسهای سرور مجازی لینوکس (VPS)، Vim بهصورت پیشفرض نصب شده و معمولاً نیازی به نصب دستی آن نخواهید داشت. به همین دلیل بسیاری از مدیران سیستم و توسعهدهندگان میتوانند بلافاصله پس از اتصال به سرور، از این ویرایشگر برای مدیریت فایلها و ویرایش تنظیمات استفاده کنند.
اجرای Vim در ترمینال
پس از نصب، برای اجرای Vim کافی است ترمینال را باز کرده و دستور زیر را وارد کنید:
vim
با اجرای این دستور، صفحه آغازین Vim نمایش داده میشود که شامل اطلاعاتی درباره نسخه نصبشده، مستندات راهنما و برخی دستورات اولیه است. از این نقطه به بعد میتوانید کار با محیط Vim و ویرایش فایلهای متنی را آغاز کنید.
حالتهای Vim (Modes)
مهمترین تفاوت Vim با بسیاری از ویرایشگرهای متن دیگر، استفاده از مفهوم «حالتها» یا Modes است. در Vim هر کلید بسته به حالتی که در آن قرار دارید، عملکرد متفاوتی خواهد داشت. به همین دلیل، درک حالتهای مختلف Vim اولین و مهمترین قدم برای یادگیری این ویرایشگر محسوب میشود.
در نگاه اول ممکن است این ساختار کمی پیچیده به نظر برسد، اما پس از آشنایی با حالتهای اصلی، متوجه خواهید شد که همین ویژگی باعث افزایش سرعت و بهرهوری در ویرایش فایلها میشود.
Command Mode (حالت دستور)
Command Mode یا حالت دستور، حالت پیشفرض Vim است. هر زمان که یک فایل را در Vim باز میکنید، بهطور خودکار در این حالت قرار دارید. در این حالت میتوانید دستورات مختلفی را برای جابهجایی در فایل، حذف متن، کپی، چسباندن و انجام بسیاری از عملیات مدیریتی اجرا کنید.
نکته مهم این است که برای ورود به سایر حالتهای Vim معمولاً ابتدا باید در Command Mode باشید. همچنین بسیاری از میانبرهای اصلی Vim بدون نیاز به استفاده از علامت دونقطه (:) در همین حالت اجرا میشوند.
Insert Mode (حالت درج)
Insert Mode حالتی است که برای نوشتن و ویرایش متن مورد استفاده قرار میگیرد. در این حالت، عملکرد Vim مشابه ویرایشگرهای متنی معمولی خواهد بود و هر کلیدی که فشار دهید مستقیماً در فایل نوشته میشود.
برای ورود به Insert Mode کافی است کلید i را فشار دهید. پس از ورود، معمولاً عبارت — INSERT — در پایین صفحه نمایش داده میشود. برای خروج از این حالت و بازگشت به Command Mode نیز میتوانید از کلید Esc استفاده کنید.
Command-Line Mode (حالت خط فرمان)
این حالت برای اجرای دستورات پیشرفتهتر Vim مورد استفاده قرار میگیرد. عملیاتهایی مانند ذخیره فایل، خروج از برنامه، جستجو و جایگزینی متن یا تغییر تنظیمات ویرایشگر معمولاً از طریق این بخش انجام میشوند.
برای ورود به Command-Line Mode از Command Mode، کافی است کلید : (دونقطه) را فشار دهید. پس از آن میتوانید دستور مورد نظر خود را وارد و اجرا کنید.
Visual Mode (حالت انتخاب متن)
Visual Mode برای انتخاب بخشهای مختلف متن و اعمال عملیات روی آنها طراحی شده است. این حالت زمانی کاربرد دارد که بخواهید قسمتی از متن را انتخاب کرده و سپس آن را کپی، حذف، جابهجا یا ویرایش کنید.
برای ورود به Visual Mode کافی است در Command Mode کلید v را فشار دهید. پس از انتخاب متن، میتوانید دستورات مختلفی را روی بخش انتخابشده اعمال کنید.
در عمل، همین چهار حالت اصلی برای انجام اکثر فعالیتهای روزمره در Vim کافی هستند. با تسلط بر این حالتها، بخش بزرگی از فرآیند کار با این ویرایشگر قدرتمند را فرا خواهید گرفت و یادگیری دستورات پیشرفتهتر نیز بسیار سادهتر خواهد شد.
عملیات پایه در Vim
پس از آشنایی با حالتهای مختلف Vim، نوبت به یادگیری مهمترین عملیات روزمره میرسد. تقریباً هر کاربری که با Vim کار میکند باید بتواند فایل ایجاد کند، آن را ویرایش و ذخیره کند و در نهایت از ویرایشگر خارج شود. در این بخش با این دستورات پایه آشنا میشویم.
ساختن فایل جدید
برای ایجاد یک فایل جدید یا باز کردن فایلی که از قبل وجود دارد، میتوانید در Command-Line Mode از دستور زیر استفاده کنید:
:edit sample.txt
اگر فایل sample.txt از قبل وجود داشته باشد، Vim آن را باز میکند. در غیر این صورت، یک فایل جدید با همین نام ایجاد خواهد شد.
پس از اجرای دستور، همچنان در Command Mode قرار دارید و امکان تایپ مستقیم متن وجود ندارد. برای شروع ویرایش فایل، کلید i را فشار دهید تا وارد Insert Mode شوید. در این حالت، عبارت — INSERT — در پایین صفحه نمایش داده میشود که نشاندهنده فعال بودن حالت درج است.
ذخیره فایل
بعد از ایجاد تغییرات در فایل، باید آن را ذخیره کنید. برای این کار ابتدا از Insert Mode خارج شوید:
- کلید Esc را فشار دهید.
- دستور زیر را وارد کنید:
:w
دستور :w مخفف کلمه write است و محتوای فعلی فایل را روی دیسک ذخیره میکند.
بستن فایل و خروج از Vim
برای خروج از ویرایشگر Vim، در Command-Line Mode دستور زیر را اجرا کنید:
:q
این دستور تنها زمانی اجرا میشود که هیچ تغییر ذخیرهنشدهای در فایل وجود نداشته باشد.
اگر بخواهید فایل را ذخیره کرده و همزمان از Vim خارج شوید، از دستور زیر استفاده کنید:
:wq
این دستور یکی از پرکاربردترین دستورات Vim است و عملیات ذخیرهسازی و خروج را بهصورت همزمان انجام میدهد.
در شرایطی که قصد دارید بدون ذخیره تغییرات از برنامه خارج شوید، میتوانید دستور زیر را اجرا کنید:
:q!
این دستور تمام تغییرات اعمالشده پس از آخرین ذخیره را نادیده گرفته و ویرایشگر را میبندد.
باز کردن یک فایل موجود
برای باز کردن یک فایل مشخص از طریق ترمینال، کافی است نام فایل را همراه با دستور Vim وارد کنید:
vim sample.txt
پس از اجرای این دستور، فایل موردنظر در Vim باز میشود و شما بهصورت پیشفرض در Command Mode قرار خواهید گرفت. برای شروع ویرایش فایل، کلید i را فشار دهید تا وارد Insert Mode شوید و بتوانید متن جدید وارد کنید یا محتوای موجود را تغییر دهید.
کپی، برش و پیست در Vim
کپی، برش و چسباندن متن از جمله پرکاربردترین عملیاتها در Vim هستند. این ویرایشگر روشهای مختلفی برای انجام این کارها در اختیار شما قرار میدهد، اما برای کاربران مبتدی، استفاده از Visual Mode سادهترین و قابلفهمترین روش محسوب میشود.
در Vim، عملیات کپی با دستور yank (y) و عملیات حذف یا برش با دستور delete (d) انجام میشود. متن کپی یا برشخورده در حافظه داخلی Vim ذخیره شده و سپس میتوان آن را در محل دیگری قرار داد.
کپی و برش متن با Visual Mode
برای انتخاب و کپی کردن بخشی از متن، مراحل زیر را دنبال کنید:
- فایل موردنظر را در Vim باز کرده و مطمئن شوید که در Command Mode قرار دارید.
- مکاننما (Cursor) را روی ابتدای بخشی از متن که قصد انتخاب آن را دارید قرار دهید.
- کلید v را فشار دهید تا وارد Visual Mode شوید. پس از ورود به این حالت، عبارت — VISUAL — در پایین صفحه نمایش داده میشود.
- با استفاده از کلیدهای جهتنما یا کلیدهای حرکتی Vim، متن موردنظر را انتخاب کنید.
- پس از انتخاب متن:
- برای کپی کردن کلید y را فشار دهید.
- برای برش (حذف و ذخیره در حافظه) کلید d را فشار دهید.
پیست کردن متن
پس از کپی یا برش متن، مکاننما را به محل موردنظر منتقل کرده و یکی از دستورات زیر را اجرا کنید:
- p : چسباندن متن بعد از مکان فعلی کرسر
- P : چسباندن متن قبل از مکان فعلی کرسر
این دو دستور به شما اجازه میدهند متن کپیشده یا برشخورده را به سرعت در هر قسمت از فایل قرار دهید.
چند میانبر کاربردی
علاوه بر Visual Mode، Vim میانبرهای سریعی نیز برای کپی و برش خطوط ارائه میدهد:
- yy : کپی کردن خط فعلی
- dd : برش یا حذف خط فعلی
- 5yy : کپی کردن ۵ خط متوالی
- 5dd : حذف یا برش ۵ خط متوالی
- p : چسباندن خطوط کپیشده یا حذفشده
این دستورات از پرکاربردترین میانبرهای Vim هستند و یادگیری آنها میتواند سرعت ویرایش فایلها را به شکل قابل توجهی افزایش دهد.
جستجو و جایگزینی متن در Vim
یکی از قدرتمندترین قابلیتهای Vim، امکان جستجو و جایگزینی سریع متن در فایل است. این ویژگی بهخصوص هنگام ویرایش فایلهای بزرگ، کدهای برنامهنویسی یا فایلهای پیکربندی بسیار کاربردی است و میتواند در زمان شما صرفهجویی قابل توجهی ایجاد کند.
در Vim عملیات جستجو و جایگزینی از طریق دستور Substitute انجام میشود که ساختار کلی آن به شکل زیر است:
:[range]s/{pattern}/{string}/[flags]
هر بخش از این دستور وظیفه مشخصی دارد:
- [range]: محدوده خطوطی که عملیات روی آنها انجام میشود. برای مثال:
%به معنی کل فایل است.5,10به معنی اعمال دستور روی خطوط ۵ تا ۱۰ است.
- {pattern}: متن یا الگویی که قصد جستجوی آن را دارید. این بخش از عبارات منظم (Regular Expressions) نیز پشتیبانی میکند.
- {string}: متنی که قرار است جایگزین عبارت پیدا شده شود.
- [flags]: گزینههای تکمیلی برای کنترل رفتار دستور. برخی از پرکاربردترین آنها عبارتاند از:
- g: جایگزینی تمام موارد موجود در هر خط
- i: نادیده گرفتن تفاوت حروف بزرگ و کوچک (Case Insensitive)
- c: درخواست تأیید قبل از هر جایگزینی
مثال عملی
فرض کنید میخواهید تمام موارد کلمه Hello را در کل فایل با Hi جایگزین کنید. برای این کار از دستور زیر استفاده کنید:
:%s/Hello/Hi/g
در این مثال:
- % نشان میدهد عملیات روی کل فایل انجام شود.
- s مخفف دستور Substitute (جایگزینی) است.
- Hello متن مورد جستجو است.
- Hi متن جایگزین است.
- g باعث میشود تمام موارد یافتشده در هر خط جایگزین شوند، نه فقط اولین مورد.
نمونههای کاربردی دیگر
جایگزینی بدون توجه به حروف بزرگ و کوچک:
:%s/hello/Hi/gi
در این حالت عباراتی مانند hello، Hello و HELLO همگی پیدا و جایگزین میشوند.
جایگزینی همراه با تأیید کاربر:
:%s/Hello/Hi/gc
در این حالت Vim قبل از هر جایگزینی از شما سؤال میکند و میتوانید برای هر مورد بهصورت جداگانه تصمیم بگیرید.
قابلیت جستجو و جایگزینی یکی از ویژگیهایی است که Vim را به ابزاری بسیار قدرتمند برای مدیریت فایلهای متنی و پروژههای بزرگ تبدیل کرده است. با یادگیری این دستور، بسیاری از ویرایشهای زمانبر را میتوان تنها با یک فرمان انجام داد.
راهنمای سریع دستورات Vim
پس از آشنایی با مفاهیم پایه و دستورات اصلی Vim، داشتن یک مرجع سریع میتواند در یادگیری و استفاده روزمره از این ویرایشگر بسیار مفید باشد. جدول زیر مجموعهای از پرکاربردترین دستورات Vim را که برای ویرایش، مدیریت فایلها و جابهجایی بین حالتهای مختلف به آنها نیاز خواهید داشت، خلاصه میکند.
| دستور | عملکرد |
|---|---|
i |
ورود به Insert Mode |
Esc |
بازگشت به Command Mode |
v |
ورود به Visual Mode |
: |
ورود به Command-Line Mode |
:w |
ذخیره فایل |
:q |
خروج از Vim |
:wq |
ذخیره فایل و خروج |
:q! |
خروج بدون ذخیره تغییرات |
:edit file.txt |
ایجاد یا باز کردن فایل |
y |
کپی متن انتخابشده |
yy |
کپی خط فعلی |
d |
برش یا حذف متن انتخابشده |
dd |
حذف یا برش خط فعلی |
p |
چسباندن متن بعد از مکاننما |
P |
چسباندن متن قبل از مکاننما |
/text |
جستجوی یک عبارت در فایل |
n |
رفتن به نتیجه بعدی جستجو |
N |
بازگشت به نتیجه قبلی جستجو |
u |
بازگردانی آخرین تغییر (Undo) |
Ctrl + r |
انجام مجدد تغییر لغوشده (Redo) |
:%s/old/new/g |
جایگزینی تمام موارد یک عبارت در فایل |
اگر بهتازگی کار با Vim را شروع کردهاید، پیشنهاد میشود ابتدا روی دستورات مربوط به جابهجایی بین حالتها، ذخیره فایل و کپی و پیست تمرکز کنید. پس از مدتی استفاده، این دستورات به بخشی از حافظه عضلانی شما تبدیل خواهند شد و سرعت کارتان در محیط ترمینال به شکل محسوسی افزایش پیدا میکند.
جمعبندی
Vim شاید در نگاه اول نسبت به ویرایشگرهای گرافیکی مدرن پیچیدهتر به نظر برسد، اما همین تفاوت، نقطه قوت اصلی آن است. ساختار مبتنی بر حالتها (Modes)، میانبرهای قدرتمند و امکان انجام سریع عملیات مختلف تنها با استفاده از صفحهکلید باعث شده است که Vim پس از چند روز تمرین به ابزاری بسیار کارآمد برای ویرایش فایلهای متنی تبدیل شود.
در این آموزش با مفاهیم پایه Vim، نحوه نصب و اجرا، حالتهای اصلی، مدیریت فایلها، کپی و برش متن و همچنین جستجو و جایگزینی آشنا شدیم. تسلط بر همین قابلیتهای ابتدایی برای انجام بخش قابل توجهی از فعالیتهای روزمره در محیط ترمینال کافی است و میتواند سرعت کار شما را به شکل محسوسی افزایش دهد.
اگر بهعنوان برنامهنویس، مدیر سیستم یا کاربر لینوکس با سرورها و محیطهای خط فرمان سروکار دارید، یادگیری Vim یک مهارت ارزشمند و بلندمدت محسوب میشود. هرچه زمان بیشتری برای تمرین دستورات و میانبرهای آن صرف کنید، بهرهوری بیشتری در ویرایش فایلها و مدیریت سیستم به دست خواهید آورد.
برای ادامه مسیر یادگیری نیز میتوانید ابزار آموزشی داخلی Vim را با اجرای دستور vimtutor در ترمینال اجرا کنید. این آموزش تعاملی یکی از بهترین روشها برای آشنایی عمیقتر با قابلیتهای Vim و تبدیل شدن به یک کاربر حرفهای این ویرایشگر قدرتمند است.
سوالات متداول
VIM چیست و چه تفاوتی با ویرایشگرهای متن معمولی دارد؟
Vim یک ویرایشگر متن مبتنی بر ترمینال است که برای کار با صفحهکلید طراحی شده و تقریباً تمام عملیاتهای ویرایشی را بدون نیاز به ماوس انجام میدهد. برخلاف ویرایشگرهای گرافیکی مانند VS Code یا Notepad++، در Vim از سیستم حالتها (Modes) استفاده میشود که به کاربران اجازه میدهد با سرعت بیشتری فایلها را ویرایش و مدیریت کنند. همین ویژگی باعث شده است Vim در میان برنامهنویسان، مدیران سیستم و کاربران لینوکس محبوبیت زیادی داشته باشد.
آیا یادگیری Vim برای کاربران مبتدی مناسب است؟
بله، اما نیازمند کمی صبر و تمرین است. ممکن است در روزهای اول محیط Vim برای کاربران تازهکار پیچیده به نظر برسد، زیرا نحوه کار آن با اکثر ویرایشگرهای متداول تفاوت دارد. با این حال، پس از یادگیری حالتهای اصلی و چند دستور پایه، استفاده از Vim بسیار سادهتر شده و سرعت کار با آن به شکل قابل توجهی افزایش مییابد.
چگونه از Vim خارج شویم؟
برای خروج از Vim ابتدا مطمئن شوید در Command Mode قرار دارید. سپس میتوانید از دستورات زیر استفاده کنید:
:qبرای خروج از فایل:wqبرای ذخیره تغییرات و خروج:q!برای خروج بدون ذخیره تغییرات
این دستورات از پرکاربردترین فرمانهای Vim محسوب میشوند و تقریباً هر کاربری باید آنها را به خاطر بسپارد.
تفاوت Vim و Vi چیست؟
Vi ویرایشگر متنی اصلی است که در سال ۱۹۷۶ برای سیستمهای یونیکس توسعه داده شد. Vim که مخفف Vi Improved است، نسخه توسعهیافته و بهبودیافته Vi محسوب میشود. قابلیتهایی مانند هایلایت سینتکس، Undo چندمرحلهای، پشتیبانی از افزونهها (Plugins)، جستجوی پیشرفته و شخصیسازی گسترده از جمله امکاناتی هستند که در Vim نسبت به Vi اضافه شدهاند.
آیا Vim روی ویندوز نیز قابل استفاده است؟
بله. Vim علاوه بر لینوکس و macOS، روی سیستمعامل ویندوز نیز قابل نصب و استفاده است. کاربران ویندوز میتوانند نسخه رسمی این ویرایشگر را دانلود و نصب کنند و از آن در محیط Command Prompt، PowerShell یا Windows Terminal استفاده کنند.
بهترین روش برای یادگیری و تمرین Vim چیست؟
یکی از بهترین روشهای یادگیری Vim استفاده از ابزار آموزشی داخلی آن با نام vimtutor است. این آموزش تعاملی بهصورت مستقیم در ترمینال اجرا میشود و در مدت حدود ۳۰ دقیقه تا یک ساعت، مهمترین مفاهیم و دستورات Vim را بهصورت عملی آموزش میدهد. علاوه بر آن، استفاده روزمره از Vim و تمرین مداوم بهترین راه برای تسلط بر این ویرایشگر است.
آیا Vim هنوز هم در سال ۲۰۲۵ و بعد از آن ارزش یادگیری دارد؟
بله. با وجود ظهور ویرایشگرهای مدرن، Vim همچنان یکی از پرکاربردترین ابزارها در محیطهای لینوکسی، سرورها، DevOps و مدیریت سیستم است. بسیاری از ابزارها و ویرایشگرهای جدید نیز از میانبرها و فلسفه کاری Vim الهام گرفتهاند. به همین دلیل، یادگیری Vim همچنان یک مهارت ارزشمند برای برنامهنویسان و مدیران سیستم محسوب میشود.









