{"id":18749284,"url":"https://github.com/wolandark/vim-cheatsheet-farsi","last_synced_at":"2025-10-29T06:02:06.027Z","repository":{"id":193761646,"uuid":"689442495","full_name":"wolandark/vim-cheatsheet-farsi","owner":"wolandark","description":"test repo for https://vimpersian.github.io/","archived":false,"fork":false,"pushed_at":"2023-09-17T00:32:36.000Z","size":104,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-20T10:44:53.177Z","etag":null,"topics":["vim"],"latest_commit_sha":null,"homepage":"https://wolandark.github.io/vim-cheatsheet-farsi/","language":"SCSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wolandark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-09-09T20:22:47.000Z","updated_at":"2023-09-17T12:49:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"be522032-6a6d-4214-a540-51b3fea5f11a","html_url":"https://github.com/wolandark/vim-cheatsheet-farsi","commit_stats":null,"previous_names":["wolandark/vim-cheatsheet-farsi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wolandark/vim-cheatsheet-farsi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolandark%2Fvim-cheatsheet-farsi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolandark%2Fvim-cheatsheet-farsi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolandark%2Fvim-cheatsheet-farsi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolandark%2Fvim-cheatsheet-farsi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wolandark","download_url":"https://codeload.github.com/wolandark/vim-cheatsheet-farsi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolandark%2Fvim-cheatsheet-farsi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271078587,"owners_count":24695473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["vim"],"created_at":"2024-11-07T17:07:03.199Z","updated_at":"2025-10-29T06:02:05.957Z","avatar_url":"https://github.com/wolandark.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"#### این مخزن صرفا جهت تست‌های سایت https://vimpersian.github.io ایجاد شده است. مخزن اصلی در آدرس https://github.com/vimpersian/vimpersian.github.io واقع شده است.\n\u003cdiv align=\"center\"\u003e\n\u003ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/1MQuSZzjvMA?si=hfl-ZmyHKMjRm7FE\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen\u003e\u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"http://www.coffeete.ir/wolandark\"\u003e\n       \u003cimg src=\"http://www.coffeete.ir/images/buttons/lemonchiffon.png\" style=\"width:260px;\" /\u003e\n\u003c/a\u003e\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\u003ch1\u003e Hello Vim World!\u003c/h1\u003e\u003c/div\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\nویم‌، یک ادیتور مودال است. به این معنی که در ویم، ما مود‌های مختلف جهت انجام کارهای مختلف داریم. مد عادی ویم، یا همان نرمال مود، حالتی است که در آن ما درون فایل حرکت می‌کنیم، متن را جستجو می‌کنیم یا ویرایش‌های جزئی انجام می‌دهیم. \n\u003cbr\u003e\u003cbr\u003e\n\nبرای وارد کردن متن از مود وردی یا اینسرت مود استفاده می‌کنیم و برای انتخاب و ویرایش‌های بزرگ‌تر از مود ویژوآل، و برای اجرای دستورات خط فرمان ویم یا خط فرمان پوسته، از مود دستوری یا کامند مود استفاده می‌کنیم.\n\nدانستن اینکه ویم فراتر از یک ادیتور است و درواقع یک زبان برای ویرایش متن و کد است در ابتدای کار حیاتی است. \nدر ویم هر کلید کیبورد در مود نرمال به یک کنش یا اکشن اختصاص دارد. مدل ویرایش در ویم این صورت است که ما مدام در بین مودهای مختلف در حال حرکت هستیم و این سرعتی باور نکردنی در پیمایش متن و ویرایش آن به ما می‌دهد.\n\u003cbr\u003e\u003cbr\u003e\n\nویم دارای گرامر بخصوصی است که آن‌را می‌توان به COM خلاصه کرد.\n\u003c/div\u003e\n\n- count (شمارش)\n- operation (عملیات)\n- motion (جهت) \n\n\u003cdiv dir=\"rtl\"\u003e\nتمام دستورات ویم می‌توانند با یک عدد پیش از آن‌ها، به تعداد آن عدد انجام شوند. همچنین تمام دستورات ویم نیز می‌توانند در جهت خاصی مانند ،چپ، راست، تا آخر خط، تا آخر کلمه، تا آخر پاراگراف ، تا اولین خط خالی و ... انجام شوند.\n\u003cbr\u003e\u003cbr\u003e\nدر ویم یا وی‌آی، ما می‌توانیم با تنها یک کلید ، در متن حرکت کنیم. این حرکت‌ها به کلمات، گروهی از حروف ، اعداد، تک حرف ، توکن‌ها یا خط ‌ها باشند.\nدر منطق ویم، یک کلمه می‌تواند گروهی از حروف ، اعداد و  سمبل‌ها باشد. از طرفی دیگر یک توکن، هر آنچه که با فضای سفید، (اسپیس)  جدا شده باشد تلقی می‌شود.\n\u003cbr\u003e\u003cbr\u003e\n\u003cstrong style=\"color:red\"\u003e\nاین راهنما باید بعد از انجام کامل vimtutor خوانده شود.\n\u003c/strong\u003e\n\u003cbr\u003e\n\u003csmall\u003e در ترمینال عبارت \u003ccode\u003evimtutor\u003c/code\u003e را وارد کنید و درس‌ها را انجام دهید.\nاگر با زبان انگلیسی آن راحت نیستید، این پلی‌لیست را در یوتوب ببینید.\n\u003c/small\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/1MQuSZzjvMA?si=hfl-ZmyHKMjRm7FE\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen\u003e\u003c/iframe\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cdiv dir=\"rtl\"\u003eدر این پلی‌لیست تمامی درس‌های \u003ccode\u003evimtutor\u003c/code\u003e\nبه‌علاوه‌ی درس‌هایی در باره نصب پلاگین و شخصی سازی ویم، قرار\nگرفته است.\u003cbr\u003e  اگرچه بیشتر اطلاعات داخل \u003ccode\u003evimtutor\u003c/code\u003e در این سایت پوشش داده\nمی‌شود، فرض بر آن است که مخاطب \u003ccode\u003evimtutor\u003c/code\u003e را گذرانده است. مرحله اول یادگیری\nویم، همیشه و همه‌جا \u003ccode\u003evimtutor\u003c/code\u003e است.\u003c/div\u003e\n\u003cbr\u003e\n\u003chr\u003e\n\n\u003cdiv dir=\"rtl\" style=\"margin-right: 5px;\"\u003e\n\u003col style=\"list-style-type: persian;\"\u003e\n\u003cli\u003e\u003ca href=\"#moving\"\u003eحرکت در فایل\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#moving2\"\u003eحرکت با حروف، کلمه یا توکن\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#moving3\"\u003eحرکت با خطوط\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#moving4\"\u003eحرکت  به وسیله صفحه\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#ins\"\u003eوارد کردن متن\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#edt\"\u003e ویرایش متن\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#xyp\"\u003eکات کپی و جایگذاری\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#vis\"\u003eحالت ویژوال\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#srch\"\u003e جستجو در متن\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#wq\"\u003e ذخیره کردن و خروج از فایل\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#multi\"\u003e  کار کردن با بیش از یک فایل\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#mark\"\u003e مارک‌ها و پرش‌ها\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#macro\"\u003eماکرو\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#colo\"\u003e فعال کردن تم‌ها در ویم\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#s\"\u003eدستورات جایگزینی متن \u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#sflags\"\u003eفلگ های مرسوم برای دستورات جایگزینی\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#larg\"\u003eآرگومان های خط فرمان\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"moving\"\u003eحرکت در فایل\u003c/h1\u003e\u003c/div\u003e\n\u003cdiv dir=\"rtl\"\u003e\u003ch2 id=\"moving2\"\u003eحرکت با حروف، کلمه یا توکن\u003c/h2\u003e\u003c/div\u003e\n\n\u003cdiv dir=\"rtl\"\u003eکلید‌های اساسی حرکت در ویم این‌ها هستند:\u003c/div\u003e\n\n-   **`h`** -- حرکت نشانگر به چپ\n-   **`j`** -- حرکت نشانگر به پایین\n-   **`k`** -- حرکت نشانگر به بالا\n-   **`l`** -- حرکت نشانگر به راست\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\nاین کلید‌ها را می‌توان با یک شمارش همراه کرد تا به توان همان عدد انجام شوند\n\u003c/div\u003e\n\n-  **`5j`**  پنج خط به پایین می‌رود\n\u003cbr\u003e\n\n-   **`b`** -- حرکت به اول یک کلمه\n-   **`B`** -- حرکت به اول یک توکن\n-   **`w`** -- حرکت به اول کلمه‌ی بعد\n-   **`W`** -- حرکت به اول توکن بعد\n-   **`e`** -- حرکت به آخر کلمه\n-   **`E`** -- حرکت به آخر توکن\n\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\n\nبرای  پرش به  پرانتز بسته،  گیومه بسته  و غیره از  **`%`** استفاده کنید\n\u003c/div\u003e\n\n**`:h matchpairs`**\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"moving3\"\u003eحرکت  با خطوط\u003c/h1\u003e\u003c/div\u003e\n\n-   **`0 \\ zero`**  -- حرکت به اول خط فعلی\n-   **`$ \\ dollar sign`** -- حرکت به آخر خط فعلی\n-   **`^ \\ caret sign`** -- حرکت به اولین  کاراکتر موجود در خط\n-   **`#G`** / **`#gg`** / **`:#`** حرکت به شماره خط مشخص، (شماره خط جایگزین هشتگ شود)\n\n\u003cbr\u003e\n\u003cdiv dir=\"rtl\"\u003eبرای استفاده از این قابلیت، شماره خطوط را فعال کنید.\u003c/div\u003e\n\n```\n:set number\n```\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"moving4\"\u003e  حرکت  به وسیله صفحه\u003c/h1\u003e\u003c/div\u003e\nدستورهای زیر برای اسکرول کردن سریع در فایل کاربرد دارند.\n\n-   **`Ctrl + b`** -- یک صفحه کامل به عقب رفتن\n-   **`Ctrl + f`** -- یک صفحه کامل به جلو رفتن\n-   **`Ctrl + d`** -- نصف صفحه جلو‌ رفتن\n-   **`Ctrl + u`** -- نصف صفحه عقب رفتن\n-   **`Ctrl + e`** -- صفحه را بدون حرکت دادن نشانگر یک خط پایین‌تر بردن\n-   **`Ctrl + y`** --  صفحه را بدون حرکت دادن نشانگر یک خط بالاتر بردن\n-   **`Ctrl + o`** -- به عقب رفتن در تاریخچه‌ی پرش ها. برای حرکت بین فایل‌ها و بافرها هم کاربرد دار\n-   **`Ctrl + i`** -- برعکس دستور بالا\n\n\u003cbr\u003e\n\n-   **`H`** -- حرکت به بالای صفحه\n-   **`M`** -- حرکت به وسط صفحه\n-   **`L`** -- حرکت به پایین صفحه\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"ins\"\u003e  وارد کردن متن\u003c/h1\u003e\u003c/div\u003e\n\n-   **`i`** -- وارد شدن به حالت ورود متن\n-   **`I`** -- وارد کردن متن در اول خط\n-   **`a`** -- سوییچ کردن به حالت ورود متن بعد از نشانگر\n-   **`A`** -- وارد کردن متن در آخر خط\n-   **`o`** -- باز کردن یک خط جدید زیر خط فعلی\n-   **`O`** -- باز کردن خط جدید بالای خط فعلی\n-   **`ea`** -- وارد کردن متن در آخر کلمه\n-   **`Esc`** -- خارج شدن از حالت ورود متن و برگشنن به حالت نرمال\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"edt\"\u003e  ویرایش متن\u003c/h1\u003e\u003c/div\u003e\n\n-   **`r`** -- جایگزین کردن یک کاراکتر و بازگشت به حالت نرمال\n-   **`cc`** -- جایگزین کردن کل خط (خط را پاک می‌کند و به خالت ورود متن می‌رود)\n-   **`C`** / **`c$`** -- جایگزین کردن متن از مکان نشانگر تا آخر خط\n-   **`cw`** -- جایگزین کردن تا آخر کلمه\n-   **`s`** -- جایگزین کردن یک کاراکتر و رفتن به حالت ورود متن\n-   **`J`** -- ادغام خط فعلی و خط زیر آن با یک اسپیس فاصله\n-   **`gJ`** -- ادغام خط فعلی با خط زیر آن بدون اسپیس\n-   **`u`** -- undo \n-   **`Ctrl`** + **`r`** -- redo\n-   **`.`** -- تکرار آخرین دستور\n\u003cbr\u003e\n\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"xyp\"\u003e   کات کپی و جایگذاری\u003c/h1\u003e\u003c/div\u003e\n\n-   **`yy`** -- کپی کردن کامل خط فعلی\n-   **`#yy`** -- کپی کردن تعداد مشخصی از خطوط\n-   **`dd`** -- کات کردن کل خط\n-   **`#dd`** -- کات کردن تعداد مشخصی از خطوط\n-   **`p`** -- جایگذاری بعد از نشانگر\n-   **`P`** -- جایگذاری قبل از نشانگر\n\n\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"vis\"\u003e  حالت ویژوال\u003c/h1\u003e\n\nبه غیر از حالت ورود متن (insert mode) و حالت نرمال (normal mode) و حالت دستوری (command mode)، حالت دیگری نیز به نام حالت ویژوال (visual mode) وجود دارد. از این مود برای انتخاب و ویرایش و انجام عملیات‌های مختلف بر روی بخش‌های بزرگ‌تری از متن استفاده می‌شود\n\nویژوال مود سه حالت کلی دارد.\n\n- حالت کاراکتری\n- حالت خطی\n- حالت بلاک\n\n\u003c/div\u003e\n\n```\ncharacter mode, line mode, and block mode\n```\n\u003cbr\u003e\n\n-   **`v`** -- انتخاب متن در حالت کاراکتری\n-   **`V`** -- انتخاب متن در حالت خطی\n-   **`Ctrl`**+**`v`** -- انتخاب متن در حالت بلاک\n\nپس از فعال‌سازی یکی از حالت‌ها، با استفاده از کلید‌های جهت متن را انتخاب کنید.\n\u003cbr\u003e\n\n-   **`o`** -- حرکت از ابتدای متن انتخاب شده به آخر آن\n-   **`aw`** -- انتخاب یک کلمه\n-   **`ab`** -- انتخاب یک بلاک کد که در بین پرانتز است\n-   **`aB`** -- انتخاب یک بلاک کد که در بین آکولاد است {}\n-   **`at`** -- انتخاب یک بلاک کد که در بین تگ است \\\u003c\\\u003e\n-   **`ib`** -- انتخاب قسمت داخلی یک بلاک کد که بین پرانتز است\n-   **`iB`** - انتخاب قسمت داخلی یک بلاک کد که بین آکولاد است {}\n-   **`it`** -- انتخاب قسمت داخلی یک بلاک کد که بین یک تگ است \\\u003c\\\u003e\n\n\u003cdiv dir=\"rtl\"\u003eپس از انتخاب متن مورد نظر می‌توانید عملیات‌های مختلف را به وسیله‌ی کلید‌های زیر انجام دهید.\u003c/div\u003e\n\n-   **`y`** -- کپی\n-   **`d`** -- کات\n-   **`p`** -- جایگذازی\n\u003cbr\u003e\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"srch\"\u003e جستجو در متن\u003c/h1\u003e\u003c/div\u003e\n\n\n-   **`* \\ asterisk`** -- رفتن به وقوع بعدی از کلمه‌ی زیر نشانگر\n-   **`# \\ pound sign`** -- رفتن به وقوع قبلی از کلمه‌ی زیر نشانگر\n-   **`/pattern`** --جستجوی یک الگوی مشخص در فایل \n-   **`?pattern`** -- جستجوی یک الگوی مشخص از مکان فعلی تا اول متن\n-   **`n`** -- پرش به وقوع بعدی الگوی یافت شده\n-   **`N`** -- پرش به وقوع قبلی الگوی یافت شده\n\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"wq\"\u003e ذخیره کردن و خروج از فایل\u003c/h1\u003e\u003c/div\u003e\n\n-   **`:w`** -- ذخیره کردن\n-   **`:wq`** / **`:x`** / **`ZZ`** -- ذخیر کردن و خروج از ویم\n-   **`:q`** -- خروج\n-   **`:q!`**/ **`ZQ`** -- خروج بدون ذخیره کردن تغییرات\n-   **`:w new_file_name `**-- ذخیره کردن تحت نامی جدید و ادامه دادن به ویرایش فایل اصلی\n-   **`:sav`** -- ذخیره کردن تحت نامی جدید و ادامه‌ دادن به ویرایش فایل کپی شده\n-   **`:w !sudo tee %`** -- ذخیره کردن فایل به‌وسیله‌ی سودو و تی، مناسب وقتی که فایلی را بدون دسترسی سودو باز کرده‌ایم [tee](https://wiki.archlinux.org/title/Tee)\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"multi\"\u003e  کار کردن با بیش از یک فایل\u003c/h1\u003e\u003c/div\u003e\n\n-   **`:e file_name `** -- باز کردن فایل در یک بافر جدید\n-   **`:bn `** -- رقتن به بافر بعدی\n-   **`:bp`** -- بازگشت به بافر قبلی\n-   **`:bd `** -- بستن بافر\n-   **`:b# `** -- رفتن به بافر با عدد شناسایی مشخص\n-   **`:b file_name`** -- رفتن به بافر با نام مشخص\n-   **`:ls`** -- لیست کردن تمام بافر باز ( شناسه‌ی عددی هر بافر کنار نام آن ظاهر خواهد شد)\n\n\u003cbr\u003e\n\n-   **`:sp file_name `** -- باز کردن یک فایل در یک اسپلیت افقی\n-   **`:vs file_name `** --باز کردن یک فایل در یک اسپلیت عمودی\n-   **`:vert ba `** -- باز کردن همه‌ی بافر های فعلی در اسپلیت‌های عمودی\n-   **`:tab ba `** -- ویرایش تمام بافر‌ها به‌وسیله تب‌\n-   **`gt`** -- رفتن به تب بعدی\n-   **`gT`** -- رفتن به تب قبلی\n\n\n\n-   **`Ctrl+ws`** -- اسپلیت کردن صفحه به صورت افقی\n-   **`Ctrl+wv`** -- اسپلیت کردن صفحه به صورت عمودی\n-   **`Ctrl+ww`** -- سوییچ کردن بین اسپلیت ها (مشابه alt + tab)\n-   **`Ctrl+wq`** -- بستن اسپلیت ها\n-   **`Ctrl+wx`** -- جابجا کردن اسپلیت ‌ها با یگدیگر\n-   **`Ctrl+=`** -- برابر کردن طول و عرض تمام اسپلیت‌ها\n\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"mark\"\u003e  مارک‌ها و پرش‌ها\u003c/h1\u003e\u003c/div\u003e\n\n-   **`m[a-z]`** -- مارک کردن موقعیت فعلی به‌وسیله‌ی حروف الفبا \n-   **`M[a-z]`** -- مارک کردن خط فعلی به‌وسیله‌ی خطوط الفبا \n-   **`` `a ``** - پرش به موقعیتی که با حرف آ مارک شده **`a`**\n-   **`` `. ``** -- پرش به آخرین تغییر در فایل \n-   **`` `0 ``** -- پرش به آخرین موقعیت فایل قبل از بسته شدن ویم\n-   **``` `` ```** -- پرش به آخرین پرش\n-   **`:marks`** -- لیست کردن همه‌ی مارک ها\n-   **`:jumps`** -- لیست کردن همه‌ی پرش ‌ها\n-   **`:changes`** لیست کردن همه‌ی‌ تغییرات\n-   **`Ctrl+o`** -- رفتن به پرش قبلی\n-   **`Ctrl+i`** -- رفتن به پرش بعدی\n-   **`g;`** -- رفتن به تغییر قبلی در لیست تغییرات\n-   **`g,`** -- رفتن به نغییر بعدی در لیست تغییرات\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"macro\"\u003e  ماکرو\u003c/h1\u003e\u003c/div\u003e\n\u003cdiv dir=\"rtl\"\u003eبرای دستور ها یا ویرایش های تکرار شونده در ویم میتوان از ماکروها استفاده کرد.\nبرای ضبط یک ماکرو ابتدا کلید q و سپس نام رجیستری که می‌خواهیم ماکرو در آن ضبط شود را وارد می‌کنیم، بدین ترتیب می‌توانیم چندین ماکرو بصورت همزمان داشته باشیم. در این مثال از رجیستر a استفاده شده است.\n\u003c/div\u003e\n\n-   **`qa `** -- ضبط کردن یک ماکرو **`a`**\n-   **`q `** -- توقف ضبط یک ماکرو \n-   **`@a `** -- اجرا کردن ماکرو **`a`**\n-   **`@@ `** -- اجرای دوباره‌ی ماکرو \n\n\u003cdiv dir=\"rtl\"\u003eبرای مثال اگر محتوای زیر را داشته باشیم:\u003c/div\u003e\n\n```\naaa\nbbb\nccc\nddd\n```\n\u003cdiv dir=\"rtl\"\u003eو بخواهیم در آخر هر خط یک کاراکتر وارد کنیم، برای مثال  حرف x، می توانیم ماکرو زیر را ضبط کنیم.\u003c/div\u003e\n\n```\nAx\u003cESC\u003ej\n\nبا در نظر گرفتن کلید ضبط و پایان ضبط ماکرو\n\nqAx\u003cESC\u003ejq\n```\n\u003cdiv dir=\"rtl\"\u003eدر اینجا با استفاده از اپراتور A، به آخر خط رفته و وارد مود ورود متن یا همان اینسرت مود می شویم. حرف x را تایپ کرده و با زدن کلید اسکیپ به مود نرمال بر می گردیم و در آخر با زدن کلید j به خط پایین می رویم تا ماکرو بتواند ادامه پیدا کند.\nهمان‌طور که پیش‌تر گفتیم، همه‌چیز در ویم شمارش پذیر یا توان پذیر هستند. بنابراین برای اجرای یک ماکرو به توان عدد خاصی، آن عدد را قبل از فراخوانی ماکرو وارد می‌کنیم.\n\u003c/div\u003e\n\u003cbr\u003e\n\n```\n10@a \nماکروی ضبط شده در رجیستر را به تعداد ده بار اجرا می‌کند\n```\n\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"colo\"\u003e فعال کردن تم‌ها در ویم\u003c/h1\u003e\u003c/div\u003e\n\n-   **`:colorscheme [colorscheme_name] `** -- تغییر تم رنگی\n-   **`:colorscheme [space]+Ctrl+d`** -- لیست کردن تمام تم های رنگی موجود\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch5\u003eچند تم پیش‌فرض زیبا:\u003c/h5\u003e\u003c/div\u003e\n\n- retrobox\n- lunaperche\n- elflord\n- slate\n\n\u003cdiv dir=\"rtl\"\u003eبا استفاده از دستور زیر نیز می‌توان رنگ زمینه پیش‌فرض ویم را به روشن یا تاریک تغییر داد:\u003c/div\u003e\n\u003cbr\u003e\n\n```\n:set background=dark\n:set background=light\n```\n\u003cdiv dir=\"rtl\"\u003eبرای استفاده بهتر  از رنگ ها و همچنین فعال سازی سینتکس، از دستور زیر استفاده می کنیم:\u003c/div\u003e\n\u003cbr\u003e\n\n```\n:syntax on\n```\n\u003cdiv dir=\"rtl\"\u003eبعدها شیوه ذخیره کردن این تنظیمات در ویم را خواهیم آموخت.\u003c/div\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"s\"\u003eدستورات جایگزینی متن \u003c/h1\u003e\nیکی از قابلیت‌های قدرتمند ویم، دارا بودن یک نوع فرمان SED داخلی است. این فرمان که در ویم معمولاً substitute خوانده می‌شود، ابزار بسیار پیشرفته‌ای برای یافتن و ویرایش متن به وسیله‌ی الگو‌های رجکس است.\nبا استفاده از این دستور، کاربر ویم می‌تواند ویرایش‌های عظیم و پیچیده‌ای را روی فایل‌ها اعمال کند. عملیات‌های طولانی و طاقت فرسای اصلاح متنی طولانی با استفاده صحیح از این دستور به آسانی صحبت کردن با بهترین دوستتان می‌شوند.\n\nبرای مثال, یک فایل html با محتوای زیر داریم.\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ch1\u003e Quote of the day\u003c/h1\u003e\n\u003ch2\u003e Shopenhauer\u003c/h2\u003e\n\n\"The majority of men... are not capable of thinking, but only of believing, and... are not accessible to reason, but only to authority.\" \u003cbr\u003e\n\n(Arthur Shopenhauer)\n\u003c/div\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\nفرض می‌کنیم که این بخشی از یک مقاله دانشگاهی یا پستی برای یک وبلاگ است. همچنین فرض می‌کنیم که ما نام آرتور شوپنهاور را از اول این فایل اشتباه تایپ کرده‌ایم. به‌جای Sch برای صدای ش در آلمانی از Sh در انگلیسی استفاده کرده‌ایم. حالا ساعت‌ها کار ما بخاطر این اشتباه غیرقابل ارائه است. \n\nبرای حل این مشکل از یک دستور جایگزینی ساده استفاده می‌کنیم.\n\u003c/div\u003e\n\n```\n:%s/Shopenhauer/Schopenhauer/g\n```\n\n\u003cdiv dir=\"rtl\"\u003eاجازه بدهید دستور را خرد کنیم.\u003c/div\u003e\n\u003cbr\u003e\n\n- % همیشه اشاره به فایل فعلی در ویم دارد، اینجا یعنی در این فایل بگرد\n- s شروع دستور جستجو و جایگزینی همیشه با این حرف است. به معنی substitute \n- /الگوی هدف/\n- /الگوی مقصد/\n- g انجام عملیات برای تمامی مچ‌ها\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch5\u003eنکته \u003c/h5\u003e\u003c/div\u003e\n\u003cdiv dir=\"rtl\"\u003e\u003cdiv style=\"color:yellow;\"\u003e\u003cstrong\u003eدر ویم نقطه . اشاره به خط زیر نشانگر دارد\u003c/strong\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cdiv dir=\"rtl\"\u003eسینتکس ساده ی دستورات جایگزینی به شکل زیر است:\u003c/div\u003e\n\n```\n:s/search/replace/flags\n```\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch2 id=\"sflags\"\u003eفلگ های مرسوم برای دستورات جایگزینی\u003c/h2\u003e\u003c/div\u003e\n\n- *`c`* تایید کردن هر جایگزینی بصورت دستی \n- *`e`* ساکت کردن ارورها در صورتی که الگو پیدا نشود\n- *`i`*  نادیده گیری حروف بزرگ و کوچک ignorecase\n- *`I`*  حساسیت به حروف بزرگ و کوچک \n- *`g`* انجام جایگزینی در تمام مچ‌ها، در غیر این صورت جایگزینی پس از اولین مچ متوقف می‌شود\n- *`n`* نمایش تعداد مچ‌ها و عدم جایگزینی\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch1 id=\"larg\"\u003eآرگومان های خط فرمان\u003c/h1\u003e\u003c/div\u003e\n\n\u003cdiv dir=\"rtl\"\u003eآرگومان های خط فرمان ویم، آپشن هایی هستند که برای تغییر عمل کرد ویم در هنگام باز کردن آن از ترمینال، می توانید مقابل نام دستور ویم قرار دهید. در جدول زیر تعداد زیادی از این آرگومان ها برای شما با توضیحات فارسی قرار داده شده است.\u003c/div\u003e\n\u003cbr\u003e\n\u003cdiv dir=\"rtl\"\u003eپر کاربردترین این آرگومان  ها از نظر نگارنده در جدول اول و باقی آن ها در جدول دوم آمده اند.\u003c/div\u003e\n\u003chr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch4\u003eجدول اول\u003c/h4\u003e\u003c/div\u003e\n\n| Option           | Description                                                                                                       |\n|------------------|-------------------------------------------------------------------------------------------------------------------|\n| `-o`           | باز کردن تعدادی فایل در اسپلیت های افقی\n| `-O`           | باز کردن تعدادی فایل در اسپلیت های افقی عمودی|\n| `-p`           | باز کردن تعدادی فایل در تب های مجزا درون ویم\n| `+/{pat}`         | تعیین جایگاه نشانگر براساس اولین وقوع رجکس                                      |\n| `-u {vimrc}`      | خواندن فایل پیکره بندی غیر از فایل پیش فرض \n| `--clean`         |  باز کردن ویم بدون تنظیمات شخصی - بدون ویم آرسی                                              |\n| `--version`       | چاپ اطلاعات مربوط به ورژن و ویژگی ها                                                                         |\n\n\n\u003chr\u003e\n\n\u003cdiv dir=\"rtl\"\u003e\u003ch4\u003eجدول دوم\u003c/h4\u003e\u003c/div\u003e\n\n| Option           | Description                                                                                                       |\n|------------------|-------------------------------------------------------------------------------------------------------------------|\n| `vim`            | باز کردن ویم و یک بافر خالی در حالت نرمال                                                                  |\n| `vim filename`   | باز کردن ویم با یک فایل مشخص                                                          |\n| `vim -`          |stdin خواندن متن از ورودی استاندارد                                                                                   |\n| `-n` or `--normal` | باز کردن ویم در حالت نرمال، پیش‌فرض                                                                                 |\n| `-i` or `--insert` | باز کردن ویم در مود اینسرت                                                                                  |\n| `-R` or `--readonly` | باز کردن فایل در حالت غیرقابل ویرایش                         |\n| `-N` or `--noplugin` | باز کردن ویم بدون لود کردن هیچ پلاگینی               |\n| `+[num]`          |               تعیین جایگاه نشانگر براساس شماره خط            |\n| `+{command}` or `-c {command}` | اجرای یک دستور پس از بازکردن فایل                           |\n| `-S {file}`       | سورس کردن یک فایل ویم اسکریپت                  |\n| `-g` or `--gui`   |  باز کردن جی ویم یا همان ویم در پنجره گرافیکی\n| `-A`              | باز کردن ویم در حالت عربی، راست به چپ آینه شده، درصورتی که با گزینه مربوط کامپایل شده باشد                               |\n| `-b`              | حالت ویرایش فایل‌های باینری           |\n| `-C`              |vi حالت هماهنگی با ادیتور  \n| `-d`              | diff باز کردن ویم در حالت دیف , برای مقایسه فایل‌ها                 |\n| `-E`              | باز کردن ویم در مود ارتقا یافته ی اکس\n| `-F`              | باز کردن ویم با تنظیمات فارسی، این گزینه دیگر وجود ندارد\n| `-h`              | نمایش پیام کمکی\n| `-m`              | غیر فعال کردن امکان ایجاد تغییر \n| `-N`              |vi  خاموش کردن تطابق با \n| `-R`              |read only حالت                                                                                     |\n| `-r`              | لیست کردن فایل های سواپ ویم جهت ریکاوری \n| `-x`              | فعال سازی رمزگذاری فایل                                                                          |\n| `-y`              | باز کردن ویم در حالت ایزی-ویم / در این حالت ویم نت پد ویندوز را شبیه سازی می کند\n| `-Z`              | باز کردن ویم در حالت محدود، جلوگیری از اجرای دستورات پوسته و غیره\n| `--`              | اعلام پایان آرگومان های ویم، پس از این تمام آرگومان ها به عنوان نام فایل خوانده می شوند\n\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003chr\u003e\n\u003cdiv align=\"center\" dir=\"rtl\" style=\"color:orange;\"\u003e\nآخرین آپدیت:\n\n۲۵ شهریور ۱۴۰۱\n\nSha Sha 25 07:07:01 +0330 1402\n\n\u003c/div\u003e\n\u003chr\u003e\n\u003cfooter\u003e\n       \u003cdiv dir=\"rtl\"\u003e\n              \u003cp\u003e مطالب این سایت بصورت مداوم به‌روز‌رسانی می‌شوند.  برای دنبال کردن مطالب این سایت را بوکمارک کنید.\u003c/p\u003e\n              \u003cp\u003eجهت کمک به این پروژه و اضافه کردن مطالب و نکات خود در باره ویم، فایل \u003ca href=\"https://github.com/wolandark/vim-cheatsheet-farsi/blob/master/RAHNAMA.md\"\u003eراهنمای\u003c/a\u003e\n داخل مخزن را ببینید.\u003c/p\u003e\n              \u003cp\u003eجهت حمایت مالی از پروژه، در صورتی که در ایران هستید، روی دکمه‌ی \u003ca href=\"https://www.coffeete.ir/wolandark\"\u003eبرام قهوه بخر\u003c/a\u003e\n کلیک کنید.\u003c/p\u003e\n              \u003cp\u003eجهت ارتباط با نگارنده از طریق تلگرام یا ایمیل اقدام کنید.\u003c/p\u003e\n              \u003cp\u003eاین سایت از یک اسکریپت web analytics کاملا اوپن سورس، ضمن احترام به حریم خصوصی کاربر استفاده می‌کند.\u003c/p\u003e\n       \u003c/div\u003e\n\u003c/footer\u003e\n\n### Contact me\n[![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge\u0026logo=telegram\u0026logoColor=white)](https://t.me/wolandarkside)\n[![Protonmail](https://img.shields.io/badge/ProtonMail-8B89CC?style=for-the-badge\u0026logo=protonmail\u0026logoColor=white)](mailto:contact-woland@proton.me)\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003chr\u003e\n\n\u003cscript async src=\"https://www.googletagmanager.com/gtag/js?id=G-HW0E88QFZ8\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n  window.dataLayer = window.dataLayer || [];\n  function gtag(){dataLayer.push(arguments);}\n  gtag('js', new Date());\n\n  gtag('config', 'G-HW0E88QFZ8');\n\u003c/script\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolandark%2Fvim-cheatsheet-farsi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwolandark%2Fvim-cheatsheet-farsi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolandark%2Fvim-cheatsheet-farsi/lists"}