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