--- contributors: - ["RadhikaG", "https://github.com/RadhikaG"] translators: - ["Moein Halvaei", "https://github.com/mo1ein"] filename: LearnVim-fa.txt ---
[Vim](http://www.vim.org) (Vi رشدیافته) یک کلون از ادیتور مشهور vi است برای unix. ادیتورمتنیست که برای سرعت و افزایش بهرهوری طراحی شده و در همه جا به ویژه در سیستم های unix-based دیده میشود. شورتکات کلید های بیشماری برای سرعت جهتیابی به نقاط ویژهي فایل ها و تغییر سریع، دارد.
`vimtutor` یک برنامهي عالیست که به شما چگونگی استفاده از `vim` را آموزش میدهد.
این به همراه پکیج های vim هنگام نصب کردن، نصب میشود. شما باید بتوانید با ران کردن `vimtutor` در کامندلاین از آموزش ها استفاده کنید. این همهی ویژگی های عمدهی `vim` را به شما راهنمایی میکند.
مکانیابی اولیه vim
باز کردن `
باز کردن help docs های `
ذخیره کردن و خارج شدن از vim ورژن خلاصه شدهی wq:
``` :x # Save file and quit vim, shorter version of :wq ```برگشت به عقب
``` u # Undo ```رفتن به جلو
``` CTRL+R # Redo ```راه رفتن در صفحه
``` h # رفتن یک کاراکتر به چپ j # رفتن یک کاراکتر به پایین k # رفتن یک کاراکتر به بالا l # رفتن یک کاراکتر به راست Ctrl+B # جابهجا شدن به عقب به اندازه یک صفحه Ctrl+F # جابهجا شدن به جلو به اندازه یک صفحه Ctrl+D # جابهجا شدن به جلو به اندازه نصف صفحه Ctrl+U # جابهجا شدن به عقب به اندازه نصف صفحه ```جابهجا شدن در خط
``` 0 # رفتن به اول خط $ # رفتن به آخر خط ^ # رفتن به اولین کاراکتر غیرخالی در خط ```جست و جو در متن
``` /word # هایلایت کردن همهی کلمه های بعد کِرسر ?word # هایلایت کردن همهی کلمه های قبل کِرسر n # جابهجایی کِرسر به کلمه های بعدی پیدا شده N # جابهجایی کِرسر به کلمه های قبلی پیدا شده ```عوض کردن 'foo' به 'bar' در هر خط از فایل
``` :%s/foo/bar/g # Change 'foo' to 'bar' on every line in the file ```عوض کردن 'foo' به 'bar' در خط فعلی
``` :s/foo/bar/g # Change 'foo' to 'bar' on the current line ```جایگزینی کاراکتر های خط جدید با کاراکتر های خط جدید
``` :%s/\n/\r/g # Replace new line characters with new line characters ```پرش به کاراکتر ها
پرش به جلو و قرار گرفتن روی کاراکتر مورد نظر
``` fپرش به جلو و قرار گرفتن قبل کاراکتر مورد نظر
``` tبرای مثال:
پرش به جلو و قرار گرفتن روی >
``` f< # Jump forward and land on < ```پرش به جلو و قرار گرفتن قبل از >
``` t< # Jump forward and land right before < ```جابهجا شدن با کلمه ها
``` w # رفتن به جلو به اندازهی یک کلمه b # رفتن به عقب به اندازهی یک کلم e # رفتن به آخر کلمهی فعلی ```سایر کاراکتر ها برای جابهجایی
رفتن به اول فایل
``` gg # Go to the top of the file ```رفتن به آخر فایل
``` G # Go to the bottom of the file ```رفتن به شمارهی خط مورد نظر (NUM شماره است)
``` :NUM # Go to line number NUM (NUM is any number) ```رفتن به اول صفحه
``` H # Move to the top of the screen ```رفتن به وسط صفحه
``` M # Move to the middle of the screen ```رفتن به آخر صفحه
``` L # Move to the bottom of the screen ```داک های help
Vim دارای یک help doc داخلی است که میتوان با help:
help: همچنین میتواند بدون option مورد استفاده قرار گیرد.
این یه صورت یک help پیشفرض بالا میآید که شروع vim را قابل دسترس تر میکند!
Modes:
رفتن به حالت insert, پیش از جایگاه cursor
``` i # Puts vim into insert mode, before the cursor position ```رفتن به حالت insert, پس از جایگاه cursor
``` a # Puts vim into insert mode, after the cursor position ```رفتن به حالت visual
``` v # Puts vim into visual mode ```رفتن به حالت ex
``` : # Puts vim into ex mode ```خروج از همهی حالت ها و رفتن به حالت command
```کپی و پیست در متن
``` y # کپی کردن متن انتخاب شده yy # کپی کردن خط فعلی d # حذف کردن متن انتخاب شده dd # حذف کردن خط فعلی p # پیست کردن متن کپی شده پس از جایگاه فعلی کِرسر P # پیست کردن متن کپی شده پیش از جایگاه فعلی کِرسر x # حذف کردن یک کاراکتر از جایگاه کِرسر ```گرامر (Grammer)
فعل ها (Verbs)
``` d # حذف c # تغییر y # کپی v # انتخاب ```تغییردهنده ها (Modifiers)
``` i # داخل a # اطراف NUM # شماره (NUM هر شمارهای است) f # جست و جو کردن چیزی و متوقف شدن روی آن t # جست و جو کردن چیزی و متوقف شدن قبل از آن / # جست و جو کردن رشتهای پس از کِرسر ? # جست و جو کردن رشتهای پیش از کِرسر ```اسم ها (Nouns)
``` w # کلمه s # جمله p # پاراگراف b # بلوک ```جمله ها و کامند های نمونه
``` d2w # حذف دو کلمه cis # تغییر داخل جمله yip # کپی داخل پاراگراف (از پاراگرافی که داخل آن هستید کپی کنید) ct< # متن را از جایی که قرار دارید به براکت باز بعدی تغییر دهید d$ # حذف تا پایان ```بعضی از شورتکات ها و ترفند ها
``` > # ایجاد دندانه به اندازه یک بلوک < # حذف دندانه به اندازه یک بلوک :earlier 15m # برگرداندن همه چیز به ۱۵ دقیقه قبل :later 15m # برعکس کامند قبلی ddp # تغییر مکان خطوط متوالی(dd, then p) . # تکرار دستور قبلی :w !sudo tee % # ذخیره کردن فایل فعلی به عنوان روت :set syntax=c # تنظیم سینتکس هایلایتینگ روی 'c' :sort # مرتب کردن همهی خطوط :sort! # مرتب کردن همهی خطوط به صورت برعکس :sort u # مرتب کردن همهی خطوط و پاک کردن تکراری ها ~ # تبدیل متن انتخاب شده به حروف (اگر بزرگ است، کوچک و اگر کوچک است، بزرگ) u # تبدیل متن انتخاب شده به حروف کوچک U # تبدیل متن انتخاب شده به حروف بزرگ J # اتصال خط فعلی به خط بعدی ```فولد (Fold)
``` zf # ایجاد فولد برای متن انتخاب شده zo # باز کردن فولد فعلی zc # بستن فولد فعلی zR # باز کردن همهی فولد ها zM # بستن همهی فولد ها ```ماکرو ها (Macros)
ماکرو ها اساسا عمل های قابل ضبط هستند. زمانی که شما شروع میکنید به ضبط ماکرو، هر عمل و دستوری را که استفاده میکنید، تا زمانی که ضبط را متوقف کنید، ضبط میشود. با فراخوانی ماکرو، دقیقاً همان توالی اعمال و دستورات، دوباره روی متن انتخاب شده اعمال میشود.
``` qa # Start recording a macro named 'a' q # Stop recording @a # Play back the macro ```کانفیگ vimrc./~
vimrc. فایلیست که استفاده میشود برای کانفیگ vim هنگام بالا آمدن
اینجا یک نمونه فایل vimrc. آورده شده:
رفرنس ها
[Vim | Home](http://www.vim.org/index.php) `$ vimtutor` [A vim Tutorial and Primer](https://danielmiessler.com/study/vim/) [What are the dark corners of Vim your mom never told you about? (St [Arch Linux Wiki](https://wiki.archlinux.org/index.php/Vim)