EN

آموزش ویرایشگر Vim

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

۲۵ خرداد ۱۴۰۲  |  زمان مطالعه: ۱۸ دقیقه

Vim (Vi Improved) یکی از قدرتمندترین و محبوب‌ترین ویرایشگرهای متن در دنیای لینوکس است. Vim روی تمام توزیع‌های لینوکس و حتی بسیاری از سیستم‌عامل‌های دیگر به صورت پیش‌فرض نصب است. یادگیری Vim به شما سرعت و کارایی فوق‌العاده‌ای در ویرایش فایل‌های متنی، کدهای برنامه‌نویسی و فایل‌های پیکربندی می‌دهد. این مقاله مخصوص افراد مبتدی طراحی شده و شما را با مفاهیم پایه‌ای تا متوسط Vim آشنا می‌کند.

پیش‌نیاز: فقط نیاز به آشنایی با محیط ترمینال دارید. فرض بر این است که هیچ‌گونه آشنایی قبلی با Vim ندارید.

۱. Vim چیست و چرا باید آن را یاد بگیریم؟

Vim یک ویرایشگر متن مدال (Modal) است، یعنی بر اساس حالت‌های مختلف کار می‌کند. برخلاف ویرایشگرهای معمولی که همیشه در حالت ویرایش هستند، در Vim شما بین حالت‌های مختلف جابه‌جا می‌شوید تا کارهای مختلفی مانند تایپ، ناوبری یا انتخاب متن را انجام دهید. مزایای اصلی Vim عبارتند از:

  • سرعت بالا: با استفاده از کلیدهای صفحه‌کلید، بدون نیاز به ماوس، بسیار سریع می‌توانید کار کنید.
  • دسترسی جهانی: روی تمام سرورهای لینوکس به صورت پیش‌فرض نصب است، بنابراین برای مدیریت سرورها ضروری است.
  • قابلیت شخصی‌سازی: با فایل .vimrc می‌توانید آن را دقیقاً مطابق نیاز خود تنظیم کنید.
  • منبع‌باز و رایگان: کاملاً رایگان است و جامعه بزرگی از کاربران و افزونه‌ها دارد.

۲. نصب Vim

در اکثر توزیع‌ها، نسخه‌ای از Vim (معمولاً vi) از قبل نصب شده است. اما برای نصب نسخه کامل Vim، از دستورات زیر استفاده کنید:

# Debian / Ubuntu
sudo apt install vim

# Fedora / RHEL
sudo dnf install vim

# Arch Linux
sudo pacman -S vim

۳. حالت‌های اصلی Vim

Vim دارای چندین حالت است که هر کدام کاربرد خاصی دارند. مهم‌ترین آنها عبارتند از:

  • حالت Normal (عادی): حالت پیش‌فرض پس از باز شدن فایل. در این حالت کلیدها برای ناوبری و اجرای دستورات استفاده می‌شوند. با کلید Esc از هر حالتی به این حالت برمی‌گردید.
  • حالت Insert (درج): حالت تایپ متن. با کلیدهای i (درج قبل از مکان‌نما)، a (درج بعد از مکان‌نما) یا o (خط جدید زیر) وارد این حالت می‌شوید.
  • حالت Visual (دیداری): حالت انتخاب متن. با کلید v وارد حالت انتخاب کاراکتر، V برای انتخاب خط و Ctrl+v برای انتخاب عمودی می‌شوید.
  • حالت Command-line (خط فرمان): با فشردن : از حالت Normal وارد این حالت می‌شوید و می‌توانید دستورات ذخیره، خروج، جستجو و غیره را اجرا کنید.

۴. حرکت در متن (ناوبری)

در حالت Normal، از کلیدهای زیر برای حرکت سریع در متن استفاده می‌کنیم:

کلیدعملکرد
hحرکت به چپ
jحرکت به پایین
kحرکت به بالا
lحرکت به راست
wحرکت به ابتدای کلمه بعدی
bحرکت به ابتدای کلمه قبلی
0 (صفر)حرکت به ابتدای خط
$حرکت به انتهای خط
ggحرکت به ابتدای فایل
Gحرکت به انتهای فایل
:nحرکت به خط شماره n (مثلاً :10)
نکته: می‌توانید قبل از کلیدهای حرکت، یک عدد قرار دهید تا حرکت را تکرار کند. مثلاً 5j یعنی ۵ خط به پایین برو.

۵. ویرایش اولیه (حذف، کپی و جایگذاری)

در حالت Normal، این کلیدها برای ویرایش سریع متن استفاده می‌شوند:

  • x : حذف کاراکتر زیر مکان‌نما.
  • dd : حذف کل خط فعلی.
  • yy : کپی (yank) کل خط فعلی.
  • p : جایگذاری متن کپی شده در زیر مکان‌نما.
  • u : لغو آخرین تغییر (Undo).
  • Ctrl + r : بازگرداندن تغییر لغو شده (Redo).
  • dw : حذف از مکان‌نما تا انتهای کلمه.
  • d$ : حذف از مکان‌نما تا انتهای خط.

برای کپی یا حذف چند خط، می‌توانید از حالت Visual استفاده کنید: با v شروع به انتخاب کنید، با کلیدهای حرکت متن مورد نظر را انتخاب کنید، سپس y برای کپی یا d برای حذف.

۶. ذخیره و خروج از Vim

برای ذخیره و خروج، از حالت Normal کلید : را فشار دهید تا وارد حالت Command-line شوید، سپس یکی از دستورات زیر را تایپ کنید:

:w          # ذخیره فایل (Save)
:q          # خروج از Vim (Quit) - در صورت تغییرات، خطا می‌دهد
:wq         # ذخیره و خروج (Write and Quit)
:x          # معادل :wq
:q!         # خروج بدون ذخیره (Force quit, discard changes)
:w newfile  # ذخیره فایل با نام جدید
هشدار: اگر تغییراتی داده‌اید و با :q! خارج شوید، تمام تغییرات از بین می‌روند.

۷. جستجو و جایگزینی

در حالت Normal، با / می‌توانید جستجو کنید و با ? به عقب جستجو کنید:

/pattern    # جستجوی رو به جلو برای الگوی مورد نظر
?pattern    # جستجوی رو به عقب
n           # رفتن به نتیجه جستجوی بعدی
N           # رفتن به نتیجه جستجوی قبلی

برای جایگزینی متن، از دستور زیر در حالت Command-line استفاده کنید:

:%s/old/new/g     # جایگزینی همه موارد 'old' با 'new' در کل فایل
:%s/old/new/gc    # جایگزینی با تایید (Confirm) برای هر کدام
:s/old/new/       # جایگزینی اولین مورد در خط فعلی

۸. شخصی‌سازی Vim با فایل .vimrc

با ایجاد فایل .vimrc در پوشه خانه خود، می‌توانید تنظیمات دائمی برای Vim ذخیره کنید:

vim ~/.vimrc

سپس خطوط زیر را به آن اضافه کنید:

" Enable line numbers
set number

" Set tab width to 4 spaces
set tabstop=4
set shiftwidth=4
set expandtab

" Enable syntax highlighting
syntax on

" Show matching parentheses
set showmatch

" Enable mouse support
set mouse=a

هر بار که Vim را باز کنید، این تنظیمات اعمال می‌شوند.

۹. ترفندها و میانبرهای مفید

  • باز کردن چند فایل: vim file1 file2 سپس با :n به فایل بعدی و :prev به فایل قبلی بروید.
  • تقسیم صفحه: :split یا :vsplit برای تقسیم افقی یا عمودی.
  • تغییر بین صفحه‌ها: Ctrl + w سپس w برای جابه‌جایی بین پنجره‌ها.
  • رفع خطاهای سریع: اگر در حالت Insert اشتباهی تایپ کردید، با Esc به Normal برگردید و از u برای Undo استفاده کنید.
  • یادگیری تعاملی: دستور vimtutor را در ترمینال اجرا کنید. این یک آموزش تعاملی و گام‌به‌گام برای Vim است که روی سیستم شما نصب است.

۱۰. مثال‌های کاربردی

مثال ۱: ویرایش فایل پیکربندی

فرض کنید می‌خواهید فایل /etc/hosts را ویرایش کنید (با دسترسی root):

sudo vim /etc/hosts

سپس با i وارد حالت Insert شوید، تغییرات را اعمال کنید، Esc بزنید و :wq برای ذخیره و خروج.

مثال ۲: جایگزینی یک متن در چند فایل

با استفاده از vim و argdo می‌توانید یک جایگزینی را روی چند فایل اعمال کنید:

vim file1.txt file2.txt
:argdo %s/old_text/new_text/g | update

جمع‌بندی و گام‌های بعدی

در این مقاله با مفاهیم پایه‌ای و کاربردی ویرایشگر Vim آشنا شدید. Vim یک ویرایشگر بسیار عمیق است و یادگیری آن زمان‌بر است، اما هر دقیقه‌ای که صرف یادگیری آن می‌کنید، در بلندمدت بهره‌وری شما را افزایش می‌دهد. برای پیشرفت بیشتر:

  • دستور vimtutor را در ترمینال اجرا کنید و تمام مراحل آن را طی کنید.
  • هر روز از Vim برای ویرایش فایل‌های ساده استفاده کنید تا کلیدها در ذهنتان تثبیت شوند.
  • مستندات رسمی را با :help داخل Vim مرور کنید.
  • کتاب «The Linux Command Line» (ترجمه فارسی در کتابخانه لینوکس) فصل کاملی به Vim اختصاص داده است.
یادتان باشد: همه حرفه‌ای‌های Vim روزی مبتدی بودند. با تمرین مداوم، سرعت و تسلط شما به سرعت افزایش خواهد یافت.