برگه تقلب Vim - سریع و کاربردی
@programming_tipsاین برگه تقلب طوری چیده شده که سرعت پیدا کردن فرمانها و الگوهای متداول در Vim را بالا ببرد.
حالتها (Modes)
- Normal (حالت پیشفرض برای حرکت و فرمانها)
- Insert (
i,I,a,A,o,O) - Visual (
vchar،Vline،Ctrl-vblock) - Command-line / Ex (
:برای دستورات،/جستجو،?جستجوی معکوس)
ورود و خروج
vim file.txt " باز کردن فایل :e another.txt " باز کردن یا رفتن به فایل :w " ذخیره :wq " ذخیره و خروج :q! " خروج بدون ذخیره :qa " خروج از همه
حرکتهای پایه (Normal mode)
h j k l " چپ، پایین، بالا، راست 0 ^ $ " ابتدای خط، اولین کاراکتر غیر فاصله، انتهای خط w W e b B " حرکت کلمه به جلو/عقب (W برای جداکنندههای بزرگتر) gg G " رفتن به ابتدای/انتهای فایل :n " رفتن به خط n % " جابجایی بین پرانتز/براکت
ویرایش (Insert / Normal)
i " وارد حالت Insert قبل از مکاننما I " وارد حالت Insert در ابتدای خط a " وارد حالت Insert بعد از مکاننما A " وارد حالت Insert در انتهای خط o " خط جدید بعدی و Insert O " خط جدید قبلی و Insert
حذف و تغییر
x " حذف تک کاراکتر dd " حذف سطر (و انتقال به register) D " حذف از مکاننما تا انتهای خط dw " حذف تا انتهای کلمه d$ " حذف تا انتهای خط cw " تغییر کلمه (حذف + وارد شدن به Insert) cc " تغییر کل خط r<char> " جایگزینی یک کاراکتر
کپی/برش/چسباندن (Yank / Put)
yy " کپی یک سطر yw " کپی تا انتهای کلمه p " چسباندن بعد از مکاننما P " چسباندن قبل از مکاننما "ayy " کپی به رجیستر a "ap " چسباندن از رجیستر a
حالت دیداری (Visual)
v " شروع Visual (حرفی) V " Visual خطی Ctrl-v " Visual بلوکی (ويرايش ستونها) > < " تورفتن/برگشت دادن بلوک انتخابی
مثال ستونبرداری:
Ctrl-v (انتخاب) I // متن وارد کن ESC
جستجو و جایگزینی
/pattern " جستجوی جلو ?pattern " جستجوی عقب n N " حرکت به نتیجه بعدی/قبلی :%s/old/new/g " جایگزینی در کل فایل :%s/old/new/gc " جایگزینی با تأیید
Undo / Redo
u " undo (حالت Normal) Ctrl-r" redo
تبها، بافرها و پنجرهها
:tabnew file " باز کردن تب جدید :tabnext / :tabn :tabprev / :tabp :bnext / :bn " بافر بعدی :bprev / :bp :bd " بستن بافر :split file " تقسیم افقی :vsplit file " تقسیم عمودی Ctrl-w s / v " تقسیم پنجره در حالت Normal Ctrl-w w " جابجایی بین پنجرهها Ctrl-w q " بستن پنجره
ماکروها
qa " ضبط ماکرو در رجیستر a ... " فرمانها را اجرا کن q " پایان ضبط @a " اجرای ماکرو a @@ " اجرای دوباره آخرین ماکرو
رجیسترها (Registers)
"0،"1..."9برای بافرهای پیشفرض"+و"*برای clipboard سیستم (البته وابسته به build):regنمایش محتویات رجیسترها
مثال چسباندن از کلیپبورد سیستمی:
"+p
ترفندهای کاربردی / tips
.فرمان قبلی را تکرار میکند — خیلی قدرتمنده.gg=Gبرای فرمت خودکار (تنظیم indentation کل فایل):set number/:set relativenumberشمارهگذاری خطوط:nohپاک کردن هایلایت جستجو:set pasteو:set nopasteبرای چسباندن بدون تغییر فرمت هنگام حالت Insert:set wrap/:set nowrap:syntax onهایلایت سینتکس
تنظیمات مفید برای .vimrc (مثال)
" پایهای set nocompatible set number set relativenumber set tabstop=4 set shiftwidth=4 set expandtab " تبدیل تب به اسپیس set clipboard=unnamedplus " استفاده از کلیپبورد سیستم syntax on " جستجو بهتر set ignorecase set smartcase set incsearch " ظاهری set cursorline set wildmenu " نقشهسازیهای کوچک nnoremap <leader>w :w<CR> nnoremap <leader>q :q!<CR>
پلاگینهای پیشنهادی
- vim-plug (مدیریت پلاگین)
- nerdtree یا nvim-tree.lua (درخت پروژه)
- fzf/telescope (فایل/متن جستجو)
- coc.nvim یا nvim-lspconfig (LSP و تکمیل)
خطاهای رایج و رفع آنها
E325: ATTENTION— فایل swap پیدا شده؛ احتمالاً فایل باز است یا کرش شده. از:recoverیا پاککردن.swpاستفاده کن.- clipboard کار نمیکند — باید Vim با پشتیبانی clipboard ساخته شده باشد (
+clipboard) یا از Neovim استفاده کن.
خلاصهٔ سریع — جدول کوتاه
Mode: Normal q quit :w save dd delete line yy yank line p paste / find :%s/old/new/g replace all u undo . repeat