ویم برای برنامه نویس ها

کار با تکست ادیتور VIM با کانفیگ پیشفرض بسیار مشکل است‌، شاید بخاطر سختی ها و کلید های طولانی و عجیب انتخاب اول خیلی ها نیست و تا زمانی که تنها انتخاب این ادیتور نباشد به سراغش نمی‌روند.این مطلب اولین نوشته منه و احتمالا بسیار غیر حرفه ای و اماتوریه اگه جایی مشکلی بود چه از نظر نگارشی چه از نظر علمی خوشحال میشم بگید که اصلاح کنم.فایل کامل این اموزشم داخل گیت هاب خودم هست اگه دوست داشتید و استفاده کردید استار گیت هاب یادتون نره .اگه سوالیم داشتید خوشحال میشم بتونم کمک کنم.چرا باید کار با VIM را یاد بگیریم ؟اول این که در برخی موارد ویم تنها گزینه موجود است مثلا اگر نیاز داشته باشیم روی سرور برخی کانفیگ ها را تغییر دهیم عموما ویم تنها گزینه ای است که در اختیار داریم. ( البته سرور های لینوکسی :) )مورد دوم این که این ادیتور بسیار سبک و سریع است و به صورت پیشفرض روی سیستم عامل های یونیکس بیس نصب است.سومین و مهم ترین دلیل هم قابلیت شخصی سازی این ادیتور است که در این مقاله آن را بررسی می‌کنیم و تلاش می‌کنیم آن را به یک تکست ادیتور ایده‌ال برای برنامه نویسی تبدیل کنیم.پیش از خواندن ادامه مطلب اصول اولیه کار با ویم را یاد بگیریدپیش از این که به سراغ کانفیگ این ادیتور برویم اصول اولیه کار با ویم را از لینک زیر بخوانید تا در ادامه مقاله به مشکلی با کلمات استفاده شده بر نخورید.https://www.howtoforge.com/vim-basicsنصب Vundleبرای اضافه کردن پلاگین های مورد نیاز به ویم به یک پلاگین منیجر نیاز داریم که انتخاب من Vundle بوده (البته موارد دیگری نیز موجود است که می‌توانید از آن ها نیز استفاده نمایید)آموزش نصب Vundle به صورت کامل در ریپوی گیت هابشان موجود است که برای اطلاعات بیشتر می‌توانید مراجعه کنید.مراحل نصب :ریپوی گیت vundle را کلون کنید.git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim۲.در دایرکتوری هوم (کانفیگ برای یوزر) فایل .vimrc را با دستور زیر بسازید.touch .vimrc۳. موارد زیر را در ابتدای فایل کپی کنید.set nocompatible " be iMproved, requiredfiletype off " required" set the runtime path to include Vundle and initializeset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()" alternatively, pass a path where Vundle should install plugins"call vundle#begin('~/some/path/here')" let Vundle manage Vundle, requiredPlugin 'gmarik/Vundle.vim'" All of your Plugins must be added before the following linecall vundle#end() " requiredfiletype plugin indent on " required۴.برای بررسی نیز می‌توانید یکی از کامند های vundle را در مود کامند ویم تست کنید مثلا::PluginInstallاضافه کردن پلاگین هااولین پلاگین auto pairs.این پلاگین برای قرار دادن پرانتز ، براکت، کوت و بقیه چیز هایی که نیاز دارند بسته شوند با اضافه کردن پلاگین auto pairs با قرار دادن یکی، جفت آن به صورت اتوماتیک قرار میگیرد.نمونه های ورودی و خروجی را هم می‌توانید در ریپوی گیت هاب این پلاگین مشاهده نمایید.برای اضافه کردن به ویم:پلاگین را به فایل .vimrc اضافه کنید. Plugin'jiangmiao/auto-pairs' ۲.ویم را ری استارت کنید و دستور زیر را در مود کامند بزنید.:PluginInstallتم gruvbox.تم های بسیاری برای ویم موجود است که طبق سلیقه خودتان می‌توانید یکی را انتخاب کنید. در این مطلب من نحوه اضافه کردن تم محبوب خودم را توضیح خواهم داد.Dark gruvboxنحوه تغییر تم:در حقیقت تم ها نیز در ویم پلاگین هستند و اضافه کردنشان مانند قسمت قبل میباشد.Plugin 'morhetz/gruvbox'colorscheme gruvboxset background=darklet g:gruvbox_contrast_dark = 'high'خط اول مربوط به اضافه کردن پلاگین به vundle است در خط بعد مشخص می‌کنیم که می‌خواهیم از تم gruvbox استفاده کنیم در اینجا من از تم دارک و کنتراست high استفاده میکنم.مانند دیگر پلاگین ها نیاز داریم که یک بار ویم را ری استارت کرده و دوباره در مود کامنت PluginInstall‌ را وارد کنیم.پلاگین NERDTreeیکی از مشکلات ویم جابه‌جا شدن بین فایل های مختلف پروژه است که این پلاگین یک پنل (به صورت پیشفرض سمت راست صفحه) به ویم اضافه می‌کند که میتوان از طریق آن بین فایل های پروژه جابه‌جا شد.نحوه اضافه کردن:Plugin 'scrooloose/nerdtree'autocmd vimenter * NERDTreeبه صورت پیشفرض nerdtree هنگام باز شدن ویم اجرا نمیشود و نیاز داریم در مود کامند NERDTree را تایپ کنیم.خط دوم برای این است که در زمان اجرای ویم این کامند اتوماتیک اجرا شود.پلاگین comentary :کامنت کردن چند خط از کد در ویم کار بسیار مشکلی است و برای هر زبان باید روند جدایی طی شود این به کمک این پلاگین میتوان یک بلاک از کد را در مود ویژوال ویم با انتخاب بلاک و زدن gc کامنت کرد.Plugin 'tpope/vim-commentary'filetype plugin onپلاگین فایل تایپ را هم حتما روشن کنید که برای زبان های مختلف قابل استفاده باشد.زبان های مختلف:از این به بعد را بسته به زبان های مورد استفاده خود اضافه کنید و اگر زبانی پوشش داده نشده بود به راحتی می‌توانید پلاگین های مناسبش را پیدا کنید.اولین بخش html و cssبرای های لایت شدن سینتکس از پلاگین های زیر استفاده کنیدPlugin 'hail2u/vim-css3-syntax'Plugin 'gorodinskiy/vim-coloresque'Plugin 'tpope/vim-haml'پلاگین جادویی emmet یکی از پلاگین های عالی و پر کاربرد ویم که کار را برای فرانت اند دولپر ها بسیار اسانتر کرده است که نحوه کار ان را در گیف های بعد خواهید دید.برای اضافه کردن این پلاگین تنظیمات زیر را به فایل vimrc اضافه کنید.Plugin 'mattn/emmet-vim'let g:user_emmet_install_global = 0autocmd FileType html,css EmmetInstalllet g:user_emmet_leader_key=','Live Server :در طراحی فرانت اند همیشه داشتن یک لایو سرور که تغییرات را در لحضه (بدون نیاز به ریلود) نمایش دهد کار را بسیار لذتبخش میکند.پلاگین bracey هر فایل Html ای که با ویم باز شود را در لحظه لود کرده و نمایش میدهد و با تغییر فایل به صورت خودکار ریلود میکند.حال نصب bracey ابتدا مطمئن شوید که nodejs و npm روی سیستم شما نصب است سپسخط زیر را به .vimrc اضافه کنید و بعد از ری استارت کردن ویم در مود کامند PluginInstall را بزنید.Plugin 'turbio/bracey.vim'سپس در ترمینال دستورات زیر را وارد نمایید.cd ~/.vim/bundle/bracey.vimnpm install --prefix serverو برای روشن شدن کافیست در مود کامند Bracey را تایپ کنید و برای متوقف شدن BraceyStoppythonsyntax enableset tabstop=4set shiftwidth=4set expandtabset numberfiletype indent onset autoindentPlugin 'davidhalter/jedi-vim'Plugin 'raimon49/requirements.txt.vim', {'for': 'requirements'}javascript" vuejsPlugin 'posva/vim-vue'Plugin 'leafOfTree/vim-vue-plugin'Plugin 'jelera/vim-javascript-syntax'ruby Plugin 'tpope/vim-rails'Plugin 'tpope/vim-rake'Plugin 'tpope/vim-projectionist'Plugin 'thoughtbot/vim-rspec'Plugin 'ecomba/vim-ruby-refactoring'