برگه تقلب Vim - سریع و کاربردی

برگه تقلب Vim - سریع و کاربردی

@programming_tips

این برگه تقلب طوری چیده شده که سرعت پیدا کردن فرمان‌ها و الگوهای متداول در Vim را بالا ببرد.


حالت‌ها (Modes)

  • Normal (حالت پیش‌فرض برای حرکت و فرمان‌ها)
  • Insert (i, I, a, A, o, O)
  • Visual (v char، V line، Ctrl-v block)
  • 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


Report Page