آموزش پیشرفته vim
Vim هنوز یکی از قدرتمندترین ویرایشگرهای متن در محیط ترمینال محسوب میشود. اگر فقط چند دستور اولیهاش را بلد باشید، حس پیچیدهبودن به شما میدهد؛ اما وقتی اصول کار با آن را درست یاد بگیرید، سرعت و دقتتان به شکل محسوسی بالا میرود.
آخرین بهروزرسانی: ۲۲ آبان ۱۴۰۵ · نسخهٔ ۱ · ۵ بازدید
این مقاله مستندات رسمی Arch Linux نیست؛ برای موارد حساس به ArchWiki مراجعه کنید.
Vim برای کاربران حرفهای
Vim هنوز یکی از قدرتمندترین ویرایشگرهای متن در محیط ترمینال محسوب میشود. اگر فقط چند دستور اولیهاش را بلد باشید، حس پیچیدهبودن به شما میدهد؛ اما وقتی اصول کار با آن را درست یاد بگیرید، سرعت و دقتتان به شکل محسوسی بالا میرود.
حالتهای اصلی
Vim بر اساس حالت (Mode) کار میکند:
- Normal : حالت پیشفرض برای حرکت و اجرای فرمانها
- Insert : برای تایپ کردن متن (
i,a,o) - Visual : برای انتخاب متن (
v,V,Ctrl+v) - Command-line : با زدن
:فعال میشود
کلید Esc تقریباً همیشه شما را به حالت Normal برمیگرداند.
حرکت سریع و حرفهای
به جای استفاده مداوم از فلشها، این حرکات را تمرین کنید:
w/b: پرش به ابتدای کلمه بعدی / قبلیe: انتهای کلمه0و$: اول و آخر خطggوG: اول و آخر فایلCtrl+d/Ctrl+u: نیمصفحه پایین / بالاf+ حرف : پرش به حرف مورد نظر در همان خط
ترکیب عدد با حرکات بسیار قدرتمند است. مثلاً 5j پنج خط پایین میرود یا 3w سه کلمه جلو میرود.
ویرایش کارآمد
dw: حذف یک کلمهdd: حذف کل خطcc: تغییر کل خط (حذف + ورود به Insert)yy: کپی خطp: *******u: بازگشت به عقبCtrl+r: جلو رفتن در تغییرات
عملگرها را میتوان با حرکات ترکیب کرد. مثال:
d$: از موقعیت فعلی تا آخر خط را حذف میکندcaw: کلمه جاری را تغییر میدهد>i{: بلاک داخل آکولاد را ایندنت میکند
کار با چندین فایل
vim file1 file2
:nو:N: فایل بعدی / قبلی:ls: لیست بافرها:b+ شماره : سوییچ به بافر خاص:spو:vsp: تقسیم افقی و عمودی پنجره
جستجو و جایگزینی
/pattern: جستجو به جلو?pattern: جستجو به عقبn/N: نتیجه بعدی / قبلی
جایگزینی در کل فایل:
:%s/old/new/g
با تأیید هر مورد:
:%s/old/new/gc
تنظیمات پایه اما مهم
فایل پیکربندی:
~/.vimrc
نمونه تنظیمات کاربردی:
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
set ignorecase
set smartcase
set hlsearch
set incsearch
set cursorline
syntax on
relativenumber به همراه number برای حرکتهای نسبی بسیار مفید است.
نکات سطح بالاتر
- با
.آخرین تغییر را تکرار کنید. - ماکرو ضبط کنید:
q+ حرف، سپس انجام کار، دوبارهq. اجرا با@+ همان حرف. - برای کار طولانیمدت، یادگیری یک plugin manager (مثل vim-plug) و چند پلاگین محدود (مثلاً برای فایلاکسپلورر و وضعیت خط) ارزشش را دارد. اما اول پایهها را محکم کنید.
توصیه نهایی
Vim را نباید یکشبه یاد گرفت. هر روز چند حرکت و ترکیب جدید را تمرین کنید. هدف این نیست که همه چیز را حفظ کنید؛ هدف این است که دستتان به حرکات اصلی عادت کند تا دیگر به ماوس و فلشها وابسته نباشید.
وقتی به حالت Normal مسلط شوید و ترکیب عملگر + حرکت را درک کنید، Vim از یک ویرایشگر سخت به ابزاری سریع و دقیق تبدیل میشود.