مرجعی برای یک Editor افسانه‌ای و قوی به نام Vim

ویرایشگری برای تمام فصولتوجه: این مقاله به مرور زمان، ویرایش و یا تکمیل می‌شود!تقاضا: در صورتی که با مشکل تایپی، دستوری و یا مفهومی در این مقاله برخورد کردید، از شما دوست عزیز و گرامی، صمیمانه تقاضا می‌کنم که اینجانب را مطلع کرده، تا نسبت به تصحیح و یا تکمیل آن، در اسرع وقت، اقدام نمایم.با کمال تشکرداریوش تصدیقیکانال تلگرام: IranianExperts@شماره تلفن همراه: ۰۹۱۲۱۰۸۷۴۶۱نشانی پست الکترونیکی: DariushT@GMail.comفیلم‌های آموزشی https://www.aparat.com/DariushTآدرس سایت‌ها: https://WebsiteAnalytics.ir - http://IranianExperts.ir - http://Date2Date.irنسخه مقاله: ۱.۲ - تاریخ بروزرسانی: ۱۳۹۹/۰۳/۱۵مقدمهقبل از شروع آموزش این ویرایشگر افسانه‌ای و قوی، باید عرض کنم که من برای نوشتن Source Code ها قطعا از Visual Studio Code استفاده می‌کنم! ولی به دلایل زیادی از این Editor نیز استفاده می‌کنم و توصیه می‌کنم شما هم با این ویرایشگر آشنا شده و آن‌را یاد بگیرید!بارها گفته‌ام و باز هم تکرار می‌کنم! برخلاف سال‌ها قبل، که برای ما برنامه‌نویسان دات‌نت، صرفا یک محیط برنامه‌نویسی به نام Visual Studio وجود داشت و ما جز سیستم‌عامل ویندوز، سیستم‌عامل دیگری را یا نمی‌شناختیم و یا اهمیتی برای ما نداشت! در دنیای امروز و خصوصا در آینده‌ای نزدیک، آشنایی و یادگیری یک سری موارد بسیار اهمیت پیدا کرده است! که اگر امروز برای فراگیری آن‌ها اقدام نکنیم، شاید خیلی زود، دیر شود! بعضی از این موارد، عبارتند از:VimGITLinuxDockerVisual Studio Codeبخشی از دلایل یادگیری ویرایشگر Vimرایگان است.کم حجم است.قابلیت‌های بسیار زیادی دارد.کدباز یا اصطلاحا Open Source می‌باشد.ویرایشگر پیش‌فرض لینوکس و GIT می‌باشد.امکانات بومی‌سازی یا اصطلاحا Customization آن خیره‌کننده است.در هر سیستم‌عاملی (به غیر از ویندوز) به صورت پیش‌فرض نصب شده و اصطلاحا Cross Platform می‌باشد.درباره Vimویرایشگر Vim مخفف دو کلمه VI Improved بوده و با استفاده از دستور ذیل می‌توانیم آن‌را اجرا کرده و وارد آن بشویم:vi SomeFileName OR vim SomeFileNameحالت‌ها یا Mode های Vimبه طور کلی، ویرایشگر Vim دارای دو حالت (Mode) می‌باشد:حالت Command (حالت پیش‌فرض): در واقع هرگاه که وارد محیط Vim می‌شویم، به صورت پیش‌فرض این مد قرار می‌گیریم. در این حالت امکان تایپ، به صورتی که در دیگر ویرایشگرها شاهد آن هستیم، وجود ندارد!حالت Insert: حالتی که به صورت نرمال می‌توانیم تایپ کرده و اکثر ویرایشگرها به صورت پیش‌فرض (بر خلاف Vim) در این حالت باز می‌شوند.چگونه حالت (Mode) را در ویرایشگر Vim تغییر دهیمزمانی که در حالت Command بوده و بخواهیم به حالت Insert رفته و به صورت نرمال متن خود را نوشته و یا ویرایش نماییم، تنها کافی است که از کاراکتر i (کوچک) و یا کاراکتر Insert استفاده نماییم.زمانی که در حالت Insert (ویرایش متن) بوده و بخواهیم به حالت Command رفته (بازگردیم) و دستورات هیجان‌انگیز Vim را بکار ببریم، تنها کافی است که از کاراکتر ESC استفاده نماییم.دستورات Vim در حالت CommandSave and/or Quit (Exit)برای ذخیره کردن تغییرات ، ابتدا کاراکتر : را زده و سپس در پایین صفحه، از کاراکتر w (کوچک)(Write) استفاده کرده و سپس Enter را می‌زنیم.برای ذخیره و خروج از محیط ادیتور، ابتدا کاراکتر : را زده و سپس در پایین صفحه، از دو کاراکتر wq (کوچک)(Write & Quit) استفاده کرده و سپس Enter را می‌زنیم.برای صرفا خروج از محیط ادیتور، در صورتی که نخواهیم اگر تغییراتی ایجاد کرده‌ایم ذخیره شود، ابتدا کاراکتر : را زده و سپس در پایین صفحه، از دو کاراکتر q! (کوچک)( Quit) استفاده کرده و سپس Enter را می‌زنیم.Cursor Navigationبرای به سمت چپ بردن Cursor از دکمه‌های Arrow Keys (سمت چپ) و یا دکمه h (کوچک) استفاده می‌کنیم.برای به سمت پایین بردن Cursor از دکمه‌های Arrow Keys (سمت پایین) و یا دکمه j (کوچک) استفاده می‌کنیم.برای به سمت بالا بردن Cursor از دکمه‌های Arrow Keys (سمت بالا) و یا دکمه k (کوچک) استفاده می‌کنیم.برای به سمت راست بردن Cursor از دکمه‌های Arrow Keys (سمت راست) و یا دکمه l (کوچک) استفاده می‌کنیم.برای این‌که Cursor به ابتدای متن یک خط منتقل شود، می‌توانیم از کاراکتر ^ استفاده نماییم.برای این‌که Cursor به انتهای متن یک خط منتقل شود، می‌توانیم از کاراکتر $ استفاده نماییم.برای بالا و پایین رفتن در متن،‌ می‌توانیم از کاراکتر G (بزرگ) به معنای Go استفاده نماییم.در صورتی که صرفا از کاراکتر G (بزرگ) استفاده نماییم، Cursor به ابتدای آخرین خط متن خواهد رفت.در صورتی که ابتدا عدد 1 و سپس کاراکتر G (بزرگ) را بزنیم، Cursor به ابتدای خط اول متن خواهد رفت.در صورتی که ابتدا عدد 5 را زده و سپس کاراکتر G (بزرگ) را بزنیم، Cursor به ابتدای خط پنجم متن خواهد رفت.Deleteزمانی که Cursor در وسط متن در حال چشمک زدن می‌باشد، با زدن x (کوچک) کاراکترها را از سمت راست پاک می‌کند و اگر از X (بزرگ) استفاده نماییم، کاراکترها را به سمت چپ حذف می‌کند.Replaceبرای جایگزین کردن یک کاراکتر، ابتدا Cursor را بر روی کاراکتری که می‌خواهیم جایگزین کنیم رفته و سپس r (کوچک) را زده و کاراکتر دلخواه را تایپ می‌کنیم.Appendدر صورتی که Cursor در هر کجای یک متن قرار داشته باشد، با زدن کاراکتر a (کوچک) به معنای Append (اضافه کردن)، Cursor به انتهای متن رفته و ما را در Mode ویرایش (Insert) قرار می‌دهد.Create a new lineبرای ایجاد یک خط خالی جدید در ذیل جایی که Cursor قرار داد از o کوچک استفاده می‌کنیم.برای ایجاد یک خط خالی جدید در بالای جایی که Cursor قرار داد از O بزرگ استفاده می‌کنیم.Undo & Redoبرای Undo کردن، از کاراکتر u (کوچک) استفاده می‌کنیم.برای Redo کردن، از دکمه‌های ترکیبی CTRL + r (کوچک) استفاده می‌کنیم.Transferدر صورتی که در خطی قرار داشته باشیم و از کاراکتر J (بزرگ) استفاده نماییم، متن خط بعدی را به انتهای خط جاری منتقل می‌کند.Copyاگر ابتدا از کاراکتر y (کوچک) به معنای Yank = Copy استفاده کرده و مجددا از کاراکتر y (کوچک) استفاده نماییم، خطی جاری که Cursor در آن قرار دارد، در حافظه Copy می‌شود.نکته: استفاده از کاراکتر Y (بزرگ)، دقیقا نتیجه‌ای معادل yy (کوچک) داشته و متن خط جاری را کپی می‌کند!اگر ابتدا از کاراکتر y (کوچک) به معنای Yank = Copy استفاده کرده سپس از کاراکتر w (کوچک) به معنای Word (کلمه) استفاده نماییم، کلمه‌ای که Cursor در آن قرار دارد را Copy می‌کند. البته به این شرط که Cursor در ابتدای کلمه باشد، در غیر این صورت از جایی که Cursor قرار دارد، تا پایان کلمه Copy می‌شود!Pasteاگر از کاراکتر p (کوچک) به معنای Paste استفاده نماییم، از جایی که Cursor قرار دارد به بعد (در سمت راست یا پایین)، متن کپی شده، Paste می‌شود.اگر از کاراکتر P (بزرگ) به معنای Paste استفاده نماییم، از جایی که Cursor قرار دارد به قبل (در سمت چپ یا بالا)، متن کپی شده، Paste می‌شود.Searchبرای جستجو می‌توانیم ابتدا / (اسلش) را زده و سپس کلمه مورد نظر را تایپ کرده و Enter بزنیم. در صورتی که از کاراکتر n (کوچک) به معنای Next (بعدی) استفاده نماییم، کلمه بعدی را (به بعد) جستجو کرده و اگر از کاراکتر N (بزرگ) را استفاده نماییم، کلمه قبلی را (به قبل) را جستجو نماییم.Repeatبا استفاده کاراکتر . (نقطه) می‌توانیم به ادیتور VIM بگوییم که آخرین دستوری که اجرا کرده‌ایم را تکرار کند.ترکیب کردن دستورات با هماگر ابتدا کاراکتر d (کوچک) به معنای Delete را زده و سپس w (کوچک) به معنای Word (کلمه) را بزنیم، اگر Cursor وسط یا ابتدای یک کلمه باشد، از آن‌جا تا ابتدای کلمه بعدی را حذف می‌کند.اگر ابتدا کاراکتر d (کوچک) به معنای Delete را زده و سپس e (کوچک) به معنای End (انتها) را بزنیم، اگر Cursor وسط یک کلمه قرار داشته باشد، از آن‌جا تا انتهای کلمه جاری را حذف می‌کند.اگر ابتدا کاراکتر d (کوچک) به معنای Delete را زده و سپس b (کوچک) به معنای Begin (ابتدا) را بزنیم، اگر Cursor وسط یک کلمه قرار داشته باشد، از آن‌جا تا ابتدای کلمه جاری را حذف می‌کند.اگر ابتدا کاراکتر d (کوچک) به معنای Delete را زده و سپس d (کوچک) به معنای یک Line (خط) را بزنیم، خط جاری که Cursor در آن قرار دارد را حذف می‌کند.برای این‌که از جایی که Cursor قرار دارد تا انتهای خط را حذف نماییم،‌ می‌توانیم از دکمه‌های ترکیبی d (کوچک) و $ استفاده کنیم.برای این‌که از جایی که Cursor قرار دارد تا ابتدای خط را حذف نماییم،‌ می‌توانیم از دکمه‌های ترکیبی d (کوچک) و ^ استفاده کنیم.Tiny Workshopفرض کنید زمانی که در داخل یک خط قرار داریم، ابتدا کاراکتر a (کوچک) و به معنای Append (اضافه کردن) را زده و سپس کلمه TODO را نوشته و سپس ESC را می‌زنیم. حال اگر در هر خطی قرار داشته باشیم و کاراکتر . (نقطه) را بفشاریم، آخرین عملیات انجام شده را تکرار کرده و لذا کلمه TODO به انتهای هر خطی که . را بزنیم،‌ اضافه می‌شود.ترکیب کردن دستورات با عدداگر Cursor قبل از کلمه The قرار داشته باشد و فقط یک‌بار کاراکتر x (کوچک) را بزنیم، صرفا کاراکتر T را حذف می‌کند، ولی اگر ابتدا عدد 3 را زده و سپس کاراکتر x (کوچک) را بزنیم، هر سه کاراکتر یعنی کلمه The را حذف می‌کند.3xاگر Cursor بر روی یک خط متن قرار داشته باشد و ابتدا عدد 2 را زده و سپس دو کاراکتر d (کوچک) را بزنیم، دو خط را (یعنی خط جاری و خط زیر آن‌را حذف می‌کند)2ddاگر Cursor قبل از یک کلمه قرار داشته باشد (و یا اولین کاراکتر آن کلمه انتخاب شده باشد) و ابتدا عدد 3 را زده و سپس کاراکتر d (کوچک) و بعد کاراکتر w را بزنیم، کلمه جاری و دو کلمه بعد از آن را حذف می‌کند:3dwاگر Cursor در یک خط قرار داشته باشد و از دکمه‌های yy استفاده نماییم، خط جاری کپی شده و اگر ابتدا عدد 5 را زده و سپس کاراکتر p (کوچک) را بزنیم، خط کپی شده را سه بار در ذیل خط جاری Paste می‌کند:yy -> 5pمنابعhttps://www.vim.orghttps://www.vim.org/download.phphttps://en.wikipedia.org/wiki/Vim_(text_editor)Learninghttps://vimeo.com/showcase/2838732https://danielmiessler.com/study/vimhttp://www2.geog.ucl.ac.uk/~plewis/teaching/unix/vimtutorVim Cheat Sheethttps://vim.rtorr.comhttps://vim.fandom.com/wiki/Best_Vim_Tipshttp://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.htmlLet Us Play Game & Learn Vimhttps://vim-adventures.comhttps://www.openvim.com/tutorial.htmlSix Reasons why you should learn Vimhttps://hackernoon.com/why-you-should-learn-vim-8085cfab1c7fبا تشکر از جادی عزیز بابت فیلم‌های آموزشی خوب ایشان در خصوص Vim https://virgool.io/@jadijadi/%D8%AA%D9%86%D8%B8%DB%8C%D9%85-%D8%A7%D8%AF%DB%8C%D8%AA%D9%88%D8%B1-%D9%88%DB%8C%D9%85-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-r4sapuh9c8rt پایان