--- category: tool tool: vim contributors: - ["RadhikaG", "https://github.com/RadhikaG"] translators: - ["Moein Halvaei", "https://github.com/mo1ein"] lang: fa-ir filename: LearnVim-fa.txt --- <p dir="rtl"> [Vim](http://www.vim.org) (Vi رشدیافته) یک کلون از ادیتور مشهور vi است برای unix. ادیتورمتنیست که برای سرعت و افزایش بهرهوری طراحی شده و در همه جا به ویژه در سیستم های unix-based دیده میشود. شورتکات کلید های بیشماری برای سرعت جهتیابی به نقاط ویژهي فایل ها و تغییر سریع، دارد. <br /> `vimtutor` یک برنامهي عالیست که به شما چگونگی استفاده از `vim` را آموزش میدهد. این به همراه پکیج های vim هنگام نصب کردن، نصب میشود. شما باید بتوانید با ران کردن `vimtutor` در کامندلاین از آموزش ها استفاده کنید. این همهی ویژگی های عمدهی `vim` را به شما راهنمایی میکند. </p> <h3> <p dir="rtl"> مکانیابی اولیه vim </p> </h3> <p dir="rtl"> باز کردن `<filename>` در ویم </p> ``` vim <filename> # Open <filename> in vim ``` <p dir="rtl"> باز کردن help docs های `<topic>` اگر وجود داشته باشد </p> ``` :help <topic> # Open up built-in help docs about <topic> if any exists ``` ``` :q # خروج از ویم :w # ذخیره کردن فایل فعلی :wq # ذخیره کردن و خارج شدن از ویم ZZ # ذخیره کردن و خارج شدن از ویم :q! # خارج شدن بدون ذخیره کردن فایل ! *forces* :q to execute, hence quiting vim without saving ZQ # خارج شدن بدون ذخیره کردن فایل ``` <p dir="rtl">ذخیره کردن و خارج شدن از vim ورژن خلاصه شدهی wq:</p> ``` :x # Save file and quit vim, shorter version of :wq ``` <p dir="rtl">برگشت به عقب</p> ``` u # Undo ``` <p dir="rtl">رفتن به جلو</p> ``` CTRL+R # Redo ``` <p dir="rtl">راه رفتن در صفحه</p> ``` h # رفتن یک کاراکتر به چپ j # رفتن یک کاراکتر به پایین k # رفتن یک کاراکتر به بالا l # رفتن یک کاراکتر به راست Ctrl+B # جابهجا شدن به عقب به اندازه یک صفحه Ctrl+F # جابهجا شدن به جلو به اندازه یک صفحه Ctrl+D # جابهجا شدن به جلو به اندازه نصف صفحه Ctrl+U # جابهجا شدن به عقب به اندازه نصف صفحه ``` <p dir="rtl"><strong>جابهجا شدن در خط</strong></p> ``` 0 # رفتن به اول خط $ # رفتن به آخر خط ^ # رفتن به اولین کاراکتر غیرخالی در خط ``` <p dir="rtl"><strong>جست و جو در متن</strong></p> ``` /word # هایلایت کردن همهی کلمه های بعد کِرسر ?word # هایلایت کردن همهی کلمه های قبل کِرسر n # جابهجایی کِرسر به کلمه های بعدی پیدا شده N # جابهجایی کِرسر به کلمه های قبلی پیدا شده ``` <p dir="rtl">عوض کردن 'foo' به 'bar' در هر خط از فایل</p> ``` :%s/foo/bar/g # Change 'foo' to 'bar' on every line in the file ``` <p dir="rtl">عوض کردن 'foo' به 'bar' در خط فعلی</p> ``` :s/foo/bar/g # Change 'foo' to 'bar' on the current line ``` <p dir="rtl">جایگزینی کاراکتر های خط جدید با کاراکتر های خط جدید</p> ``` :%s/\n/\r/g # Replace new line characters with new line characters ``` <p dir="rtl"><strong>پرش به کاراکتر ها</strong></p> <p dir="rtl">پرش به جلو و قرار گرفتن روی کاراکتر مورد نظر</p> ``` f<character> # Jump forward and land on <character> ``` <p dir="rtl">پرش به جلو و قرار گرفتن قبل کاراکتر مورد نظر</p> ``` t<character> # Jump forward and land right before <character> ``` <p dir="rtl"><strong>برای مثال:</strong></p> <p dir="rtl">پرش به جلو و قرار گرفتن روی ></p> ``` f< # Jump forward and land on < ``` <p dir="rtl">پرش به جلو و قرار گرفتن قبل از ></p> ``` t< # Jump forward and land right before < ``` <p dir="rtl"><strong>جابهجا شدن با کلمه ها</strong></p> ``` w # رفتن به جلو به اندازهی یک کلمه b # رفتن به عقب به اندازهی یک کلم e # رفتن به آخر کلمهی فعلی ``` <p dir="rtl"><strong>سایر کاراکتر ها برای جابهجایی</strong></p> <p dir="rtl">رفتن به اول فایل</p> ``` gg # Go to the top of the file ``` <p dir="rtl">رفتن به آخر فایل</p> ``` G # Go to the bottom of the file ``` <p dir="rtl">رفتن به شمارهی خط مورد نظر (NUM شماره است)</p> ``` :NUM # Go to line number NUM (NUM is any number) ``` <p dir="rtl">رفتن به اول صفحه</p> ``` H # Move to the top of the screen ``` <p dir="rtl">رفتن به وسط صفحه</p> ``` M # Move to the middle of the screen ``` <p dir="rtl">رفتن به آخر صفحه</p> ``` L # Move to the bottom of the screen ``` <h3> <p dir="rtl"><strong> داک های help </strong></p> </h3> <p dir="rtl"> Vim دارای یک help doc داخلی است که میتوان با help: <topic> به آن دسترسی داشت. برای مثال help navigation: داک مربوط به مکانیابی در فضای کار را به شما نشان میدهد! <br /><br /> help: همچنین میتواند بدون option مورد استفاده قرار گیرد. این یه صورت یک help پیشفرض بالا میآید که شروع vim را قابل دسترس تر میکند! </p> <h3> <p dir="rtl"><strong>Modes:</strong></p> </h3> <div dir="rtl"> Vim بر پایهی مفهومیست به نام <strong>modes</strong> <br /><br /> <ul> <li> Command Mode - ویم در این حالت بالا میآید، برای مکانیابی و نوشتن دستورات استفاده میشود </li> <li> Insert Mode - برای ایجاد تغییر در فایل شما استفاده میشود </li> <li> Visual Mode - برای هایلایت کردن متن و انجام عملی روی آن ها استفاده میشود </li> <li> Ex Mode - برای وارد کردن دستورات توسط ":" در قسمت پایین استفاده میشود </li> </ul> <br /> </div> <p dir="rtl">رفتن به حالت insert, پیش از جایگاه cursor</p> ``` i # Puts vim into insert mode, before the cursor position ``` <p dir="rtl">رفتن به حالت insert, پس از جایگاه cursor</p> ``` a # Puts vim into insert mode, after the cursor position ``` <p dir="rtl">رفتن به حالت visual</p> ``` v # Puts vim into visual mode ``` <p dir="rtl">رفتن به حالت ex</p> ``` : # Puts vim into ex mode ``` <p dir="rtl">خروج از همهی حالت ها و رفتن به حالت command</p> ``` <esc> # 'Escapes' from whichever mode you're in, into Command mode ``` <p dir="rtl">کپی و پیست در متن</p> ``` y # کپی کردن متن انتخاب شده yy # کپی کردن خط فعلی d # حذف کردن متن انتخاب شده dd # حذف کردن خط فعلی p # پیست کردن متن کپی شده پس از جایگاه فعلی کِرسر P # پیست کردن متن کپی شده پیش از جایگاه فعلی کِرسر x # حذف کردن یک کاراکتر از جایگاه کِرسر ``` <h3> <p dir="rtl"><strong>گرامر (Grammer) </strong></p> </h3> <div dir="rtl"> Vim را می توان به عنوان مجموعه ای از دستورات در قالب (Verb - Modifier - Noun) تصور کرد ، جایی که: <br /><br /> <ul> <li> Verb - عمل شما </li> <li> Modifier - چگونگی انجام عمل شما </li> <li> Noun - شیئی که عمل شما بر اساس آن عمل می کند </li> </ul> اندکی از مثال های مهم Verbs ,Modifiers, Nouns: <br /><br /> </div> <p dir="rtl"><strong>فعل ها (Verbs)</strong></p> ``` d # حذف c # تغییر y # کپی v # انتخاب ``` <p dir="rtl"><strong>تغییردهنده ها (Modifiers)</strong></p> ``` i # داخل a # اطراف NUM # شماره (NUM هر شمارهای است) f # جست و جو کردن چیزی و متوقف شدن روی آن t # جست و جو کردن چیزی و متوقف شدن قبل از آن / # جست و جو کردن رشتهای پس از کِرسر ? # جست و جو کردن رشتهای پیش از کِرسر ``` <p dir="rtl"><strong>اسم ها (Nouns)</strong></p> ``` w # کلمه s # جمله p # پاراگراف b # بلوک ``` <p dir="rtl"><strong>جمله ها و کامند های نمونه</strong></p> ``` d2w # حذف دو کلمه cis # تغییر داخل جمله yip # کپی داخل پاراگراف (از پاراگرافی که داخل آن هستید کپی کنید) ct< # متن را از جایی که قرار دارید به براکت باز بعدی تغییر دهید d$ # حذف تا پایان ``` <h3> <p dir="rtl">بعضی از شورتکات ها و ترفند ها</p> </h3> ``` <!--TODO: Add more!--> > # ایجاد دندانه به اندازه یک بلوک < # حذف دندانه به اندازه یک بلوک :earlier 15m # برگرداندن همه چیز به ۱۵ دقیقه قبل :later 15m # برعکس کامند قبلی ddp # تغییر مکان خطوط متوالی(dd, then p) . # تکرار دستور قبلی :w !sudo tee % # ذخیره کردن فایل فعلی به عنوان روت :set syntax=c # تنظیم سینتکس هایلایتینگ روی 'c' :sort # مرتب کردن همهی خطوط :sort! # مرتب کردن همهی خطوط به صورت برعکس :sort u # مرتب کردن همهی خطوط و پاک کردن تکراری ها ~ # تبدیل متن انتخاب شده به حروف (اگر بزرگ است، کوچک و اگر کوچک است، بزرگ) u # تبدیل متن انتخاب شده به حروف کوچک U # تبدیل متن انتخاب شده به حروف بزرگ J # اتصال خط فعلی به خط بعدی ``` <h4> <p dir="rtl"> فولد (Fold) </p> </h4> ``` zf # ایجاد فولد برای متن انتخاب شده zo # باز کردن فولد فعلی zc # بستن فولد فعلی zR # باز کردن همهی فولد ها zM # بستن همهی فولد ها ``` <h3> <p dir="rtl"> ماکرو ها (Macros) </p> </h3> <p dir="rtl"> ماکرو ها اساسا عمل های قابل ضبط هستند. زمانی که شما شروع میکنید به ضبط ماکرو، هر عمل و دستوری را که استفاده میکنید، تا زمانی که ضبط را متوقف کنید، ضبط میشود. با فراخوانی ماکرو، دقیقاً همان توالی اعمال و دستورات، دوباره روی متن انتخاب شده اعمال میشود. </p> ``` qa # Start recording a macro named 'a' q # Stop recording @a # Play back the macro ``` <h3> <p dir="rtl"> کانفیگ vimrc./~ <p> </h3> <p dir="rtl"> vimrc. فایلیست که استفاده میشود برای کانفیگ vim هنگام بالا آمدن <br /> اینجا یک نمونه فایل vimrc. آورده شده: </p> ``` " Example ~/.vimrc " 2015.10 " Required for vim to be iMproved set nocompatible " Determines filetype from name to allow intelligent auto-indenting, etc. filetype indent plugin on " Enable syntax highlighting syntax on " Better command-line completion set wildmenu " Use case insensitive search except when using capital letters set ignorecase set smartcase " When opening a new line and no file-specific indenting is enabled, " keep same indent as the line you're currently on set autoindent " Display line numbers on the left set number " Indentation options, change according to personal preference " Number of visual spaces per TAB set tabstop=4 " Number of spaces in TAB when editing set softtabstop=4 " Number of spaces indented when reindent operations (>> and <<) are used set shiftwidth=4 " Convert TABs to spaces set expandtab " Enable intelligent tabbing and spacing for indentation and alignment set smarttab ``` <h3> <p dir="rtl">رفرنس ها</p> </h3> [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)