کاستومایز کردن ویم – Customize vim

استاندارد

از چه ورژن ویم استفاده میکنید ؟

در مورد استفاده از ویم باید ورژنی که داریم ازش استفاده میکنیم رو چک کنیم برای اینکه یکسری فیچر ها و … ممکنه روی ورژن های قبلی درست کار نکنه و یا اصلا نصب نشه . خلاصه به مشکل میخورید !

vim --version

ایجاد منبع فراخانی تغییرات

خوب برای اینکه بتونیم یکسری تغییراتی رو روی ویم به صورت دیفایلت قرار بدیم و بگیم هر دفعه وارد ویم میشم این تغییراتو به من نشون بده باید یک فایلی ایجاد کنیم به اسم .vimrc پس :

vim ~/.vimrc

یک نکته در مورد محل ذخیره سازی این فایل ! ببینید این فایل توی دایرکتوری هوم home شما باید ساخته بشه نه جای دیگه !

ست کردن بعضی فیچر ها

:set number " Display line numbers on the left side :set ls=2 " This makes Vim show a status line even when only one window is shown :filetype plugin on " This line enables loading the plugin files for specific file types :set tabstop=4 " Set tabstop to tell vim how many columns a tab counts for. Linux kernel code expects each tab to be eight columns wide. :set expandtab " When expandtab is set, hitting Tab in insert mode will produce the appropriate number of spaces. :set softtabstop=4 " Set softtabstop to control how many columns vim uses when you hit Tab in insert mode. If softtabstop is less than tabstop and expandtab is not set, vim will use a combination of tabs and spaces to make up the desired spacing. If softtabstop equals tabstop and expandtab is not set, vim will always use tabs. When expandtab is set, vim will always use the appropriate number of spaces. :set shiftwidth=4 " Set shiftwidth to control how many columns text is indented with the reindent operations (<< and >>) and automatic C-style indentation. :setlocal foldmethod=indent " Set folding method :set t_Co=256 " makes Vim use 256 colors :set nowrap " Don't Wrap lines! :colorscheme molokai "Set colorScheme :set nocp " This changes the values of a LOT of options, enabling features which are not Vi compatible but really really nice :set clipboard=unnamed :set clipboard=unnamedplus :set autoindent " Automatic indentation :set cindent " This turns on C style indentation :set si " Smart indent :syntax enable " syntax highlighting :set showmatch " Show matching brackets :set hlsearch " Highlight in search "":set ignorecase " Ignore case in search :set noswapfile " Avoid swap files :set mouse=a " Mouse Integration

تا کردن کد

" Enable folding set foldmethod=indent set foldlevel=99

اوتوکامپلیت کاراکتر های خواص

" auto complete for ( , " , ' , [ , { :inoremap ( ()<Left> :inoremap " ""<Left> :inoremap ` ``<Left> :inoremap ' ''<Left> :inoremap [ []<Left> :inoremap { {}<Left> :inoremap < < ><Left>

کامنت گذاری

" auto comment and uncomment with F6 and F7 key :autocmd FileType c,cpp,java,scala let b:comment_leader = '// ' :autocmd FileType sh,ruby,python let b:comment_leader = '# ' :noremap <silent> #6 :<C-B>silent <C-E>s/^/<C-R>=escape(b:comment_leader,'\/')<CR>/<CR>:nohlsearch<CR> " commenting line with F6 :noremap <silent> #6 :<C-B>silent <C-E>s/^\V<C-R>=escape(b:comment_leader,'\/')<CR>//e<CR>:nohlsearch<CR> " uncommenting line with F6

حالت جای گذاری متن

:set pastetoggle=<F2> " Paste mode toggle with F2 Pastemode disable auto-indent and bracket auto-compelation and it helps you to paste code fro elsewhere .

کاستومایز کردن ویم ارلاین

" airline plugin setting let g:airline_theme='simple' :let g:airline#extensions#tabline#enabled = 1 " showing tabs :let g:airline_powerline_fonts = 1 if !exists('g:airline_symbols') let g:airline_symbols = {} endif " unicode symbols let g:airline_left_sep = '»' let g:airline_left_sep = '' let g:airline_right_sep = '«' let g:airline_right_sep = ''

درخت فایل ها

" NERDTree plugin setting "toggle showing NERDTree with F9 :map <F9> :NERDTreeToggle<CR> "open a NERDTree automatically when vim starts up if no files were specified autocmd StdinReadPre * let s:std_in=1 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif " close vim if the only window left open is a NERDTree autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif " Open file in new tab with ctrl + t :let NERDTreeMapOpenInTab='<c-t>'

فرمت بندی بهتر برای پایتون

au BufNewFile,BufRead *.py \set tabstop=4 \set softtabstop=4 \set shiftwidth=4 \set textwidth=79 \set expandtab \set autoindent \set fileformat=unix

حذف اسپیس های اضافه

au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/ highlight BadWhitespace ctermbg=red guibg=darkred

تنظیمات you complate me

let g:ycm_autoclose_preview_window_after_completion=1 map g :YcmCompleter GoToDefinitionElseDeclaration let python_highlight_all=1 let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree

نصب پکیج منیجر ویم

خوب رسیدیم به این بخش بخش خیلی جالبی که میتونه کارمونو راحت کنه . نصب پکیج منیجر باندل برای ویم . همونطور که ما توی حالت عادی باندل رو داریم برای ویم واندل رو داریم یه پلاگین خواصیه که برای ویم هست . بریم نصبش کنیم .

git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

خوب الان ما برای خودمون این پلاگین رو نصب کردیم ولی باید به ویم بگیم که اینو فراخانی کن .

نصب پلاگین

خوب وقتی پلاگین رو اضافه میکنیم باید نصبش کنیم پس با این دستور میتونیم پلاگین نصب کنیم .

:PluginInstall

فراخانی واندل

set nocompatible " 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' " add all your plugins here (note older versions of Vundle " used Bundle instead of Plugin) " ... " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required set encoding=utf-8

این هم از پکیج منیجر ما اما یکسری پلاگین هم نیاز داریم .

من خودم یکسری پلاگین هایی نصب کردم که توضیحشون توی ویدعوی اموزشی داده میشه که هر کدوم چی هستن و به چه کاری میان …

Plugin 'vim-scripts/indentpython.vim' Plugin 'Valloric/YouCompleteMe' Plugin 'fatih/vim-go' Plugin 'scrooloose/nerdtree' Plugin 'jistr/vim-nerdtree-tabs' Plugin 'vim-syntastic/syntastic' Plugin 'nvie/vim-flake8' Plugin 'vim-airline/vim-airline' Plugin 'vim-airline/vim-airline-themes' Plugin 'gryf/pylint-vim' Plugin 'codota/tabnine-vim'

بریم سراغ نصب تم برای ویم

نصب تم مولوکای برای ویم .

" Vim color file " " Author: Tomas Restrepo <tomas@winterdom.com> " " Note: Based on the monokai theme for textmate " by Wimer Hazenberg and its darker variant " by Hamish Stuart Macpherson " hi clear set background=dark if version > 580 " no guarantees for version 5.8 and below, but this makes it stop " complaining hi clear if exists("syntax_on") syntax reset endif endif let g:colors_name="molokai" if exists("g:molokai_original") let s:molokai_original = g:molokai_original else let s:molokai_original = 0 endif hi Boolean guifg=#AE81FF hi Character guifg=#E6DB74 hi Number guifg=#AE81FF hi String guifg=#E6DB74 hi Conditional guifg=#F92672 gui=bold hi Constant guifg=#AE81FF gui=bold hi Cursor guifg=#000000 guibg=#F8F8F0 hi Debug guifg=#BCA3A3 gui=bold hi Define guifg=#66D9EF hi Delimiter guifg=#8F8F8F hi DiffAdd guibg=#13354A hi DiffChange guifg=#89807D guibg=#4C4745 hi DiffDelete guifg=#960050 guibg=#1E0010 hi DiffText guibg=#4C4745 gui=italic,bold hi Directory guifg=#A6E22E gui=bold hi Error guifg=#960050 guibg=#1E0010 hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold hi Exception guifg=#A6E22E gui=bold hi Float guifg=#AE81FF hi FoldColumn guifg=#465457 guibg=#000000 hi Folded guifg=#465457 guibg=#000000 hi Function guifg=#A6E22E hi Identifier guifg=#FD971F hi Ignore guifg=#808080 guibg=bg hi IncSearch guifg=#C4BE89 guibg=#000000 hi Keyword guifg=#F92672 gui=bold hi Label guifg=#E6DB74 gui=none hi Macro guifg=#C4BE89 gui=italic hi SpecialKey guifg=#66D9EF gui=italic hi MatchParen guifg=#000000 guibg=#FD971F gui=bold hi ModeMsg guifg=#E6DB74 hi MoreMsg guifg=#E6DB74 hi Operator guifg=#F92672 " complete menu hi Pmenu guifg=#66D9EF guibg=#000000 hi PmenuSel guibg=#808080 hi PmenuSbar guibg=#080808 hi PmenuThumb guifg=#66D9EF hi PreCondit guifg=#A6E22E gui=bold hi PreProc guifg=#A6E22E hi Question guifg=#66D9EF hi Repeat guifg=#F92672 gui=bold hi Search guifg=#FFFFFF guibg=#455354 " marks column hi SignColumn guifg=#A6E22E guibg=#232526 hi SpecialChar guifg=#F92672 gui=bold hi SpecialComment guifg=#465457 gui=bold hi Special guifg=#66D9EF guibg=bg gui=italic hi SpecialKey guifg=#888A85 gui=italic if has("spell") hi SpellBad guisp=#FF0000 gui=undercurl hi SpellCap guisp=#7070F0 gui=undercurl hi SpellLocal guisp=#70F0F0 gui=undercurl hi SpellRare guisp=#FFFFFF gui=undercurl endif hi Statement guifg=#F92672 gui=bold hi StatusLine guifg=#455354 guibg=fg hi StatusLineNC guifg=#808080 guibg=#080808 hi StorageClass guifg=#FD971F gui=italic hi Structure guifg=#66D9EF hi Tag guifg=#F92672 gui=italic hi Title guifg=#ef5939 hi Todo guifg=#FFFFFF guibg=#BB0000 gui=bold hi Typedef guifg=#66D9EF hi Type guifg=#66D9EF gui=none hi Underlined guifg=#808080 gui=underline hi VertSplit guifg=#808080 guibg=#080808 gui=bold hi VisualNOS guibg=#403D3D hi Visual guibg=#403D3D hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold hi WildMenu guifg=#66D9EF guibg=#000000 if s:molokai_original == 1 hi Normal guifg=#F8F8F2 guibg=#272822 hi Comment guifg=#75715E hi CursorLine guibg=#3E3D32 gui=underline hi CursorColumn guibg=#3E3D32 hi LineNr guifg=#BCBCBC guibg=#3B3A32 hi NonText guifg=#BCBCBC guibg=#3B3A32 else hi Normal guifg=#F8F8F2 guibg=#1B1D1E hi Comment guifg=#465457 hi CursorLine guibg=#293739 hi CursorColumn guibg=#293739 hi LineNr guifg=#BCBCBC guibg=#232526 hi NonText guifg=#BCBCBC guibg=#232526 end " " Support for 256-color terminal " if &t_Co > 255 hi Boolean ctermfg=135 hi Character ctermfg=144 hi Number ctermfg=135 hi String ctermfg=144 hi Conditional ctermfg=161 cterm=bold hi Constant ctermfg=135 cterm=bold hi Cursor ctermfg=16 ctermbg=253 hi Debug ctermfg=225 cterm=bold hi Define ctermfg=81 hi Delimiter ctermfg=241 hi DiffAdd ctermbg=24 hi DiffChange ctermfg=181 ctermbg=239 hi DiffDelete ctermfg=162 ctermbg=53 hi DiffText ctermbg=102 cterm=bold hi Directory ctermfg=118 cterm=bold hi Error ctermfg=219 ctermbg=89 hi ErrorMsg ctermfg=199 ctermbg=253 cterm=bold hi Exception ctermfg=118 cterm=bold hi Float ctermfg=135 hi FoldColumn ctermfg=67 ctermbg=16 hi Folded ctermfg=67 ctermbg=16 hi Function ctermfg=118 hi Identifier ctermfg=208 hi Ignore ctermfg=244 ctermbg=232 hi IncSearch ctermfg=193 ctermbg=16 hi Keyword ctermfg=161 cterm=bold hi Label ctermfg=229 cterm=none hi Macro ctermfg=193 hi SpecialKey ctermfg=81 hi MatchParen ctermfg=16 ctermbg=208 cterm=bold hi ModeMsg ctermfg=229 hi MoreMsg ctermfg=229 hi Operator ctermfg=161 " complete menu hi Pmenu ctermfg=81 ctermbg=16 hi PmenuSel ctermfg=208 ctermbg=236 hi PmenuSbar ctermbg=232 hi PmenuThumb ctermfg=81 hi PreCondit ctermfg=118 cterm=bold hi PreProc ctermfg=118 hi Question ctermfg=81 hi Repeat ctermfg=161 cterm=bold hi Search ctermfg=253 ctermbg=66 " marks column hi SignColumn ctermfg=118 ctermbg=235 hi SpecialChar ctermfg=161 cterm=bold hi SpecialComment ctermfg=245 cterm=bold hi Special ctermfg=81 hi SpecialKey ctermfg=245 hi Statement ctermfg=161 cterm=bold hi StatusLine ctermfg=238 ctermbg=253 hi StatusLineNC ctermfg=244 ctermbg=232 hi StorageClass ctermfg=208 hi Structure ctermfg=81 hi Tag ctermfg=161 hi Title ctermfg=166 hi Todo ctermfg=231 ctermbg=232 cterm=bold hi Typedef ctermfg=81 hi Type ctermfg=81 cterm=none hi Underlined ctermfg=244 cterm=underline hi VertSplit ctermfg=244 ctermbg=232 cterm=bold hi VisualNOS ctermbg=238 hi Visual ctermbg=235 hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold hi WildMenu ctermfg=81 ctermbg=16 hi Normal ctermfg=252 ctermbg=233 hi Comment ctermfg=59 hi CursorLine ctermbg=234 cterm=underline hi CursorColumn ctermbg=234 hi LineNr ctermfg=250 ctermbg=234 hi NonText ctermfg=250 ctermbg=233 end

لینک های مورد نیاز

you complate me

colorscheme

منبع

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *