This page shows how to install some of the most basic plugins , and set them up.

brew install cmake macvim python mono go nodejs
curl -fLo ~/.vim/autoload/plug.vim --create-dirs <https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim>
" --- Plugins --- "

"If Use vim-plugin"
"command in bash: "
"curl -fLo ~/.vim/autoload/plug.vim --create-dirs <https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim>"
"repo is here: <https://github.com/junegunn/vim-plug>"
"call plugins in it:"

call plug#begin('~/.vim/plugged')

"color scheme: <https://github.com/morhetz/gruvbox>"
Plug 'morhetz/gruvbox'

"vim manual: <https://github.com/vim-utils/vim-man>"
Plug 'vim-utils/vim-man'

"for git: <https://github.com/tpope/vim-fugitive>"
Plug 'tpope/vim-fugitive'

"<https://github.com/jremmen/vim-ripgrep>"
Plug 'jremmen/vim-ripgrep'

"<https://github.com/ctrlpvim/ctrlp.vim>"
Plug 'git@github.com:ctrlpvim/ctrlp.vim.git'

"<https://github.com/mbbill/undotree>"
Plug 'mbbill/undotree'

"YCM: <https://github.com/ycm-core/YouCompleteMe#installation>"
Plug 'git@github.com:ycm-core/YouCompleteMe.git', {'do': 'python3 ./install.py --all'}

"for typescript: <https://github.com/leafgarland/typescript-vim>"
Plug 'leafgarland/typescript-vim'

"for c++: <https://github.com/lyuts/vim-rtags> "
Plug 'lyuts/vim-rtags'

call plug#end()

"run `:w` `:source %` `:PlugInstall`"

"If Use Vundle"
"see repo here: <https://github.com/VundleVim/Vundle.vim#about>"

" --- Plug Settings ---"

"gruvbox: color scheme"
colorscheme gruvbox
set background=dark

"ripgrep: recoginze root of the git"
if executable('rg')
    let g:rg_derive_root='true'
endif

"ctrlp"
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard']
let g:ctclp_use_caching = 0     "ag is fast enought so ctrlp no need to cache"

"set space as leader key"
let mapleader = " "

let g:netrw_browse_split = 2
let g:netrw_banner = 0
let g:netrw_winsize = 25
cd ~/.vim/plugged/YouCompleteMe
python3 install.py
# use standalone python3, not virtual envs such as conda base
" --- Key Bindings --- "

nnoremap <leader>h :wincmd h<CR>
nnoremap <leader>j :wincmd j<CR>
nnoremap <leader>k :wincmd k<CR>
nnoremap <leader>l :wincmd l<CR>
nnoremap <leader>u :UndotreeShow<CR>
nnoremap <leader>pv :wincmd v<bar> :Ex <bar> :vertical resize 30<CR>
nnoremap <leader>ps :Rg<SPACE>
nnoremap <silent> <leader>+ :vertical resize +5<CR>
nnoremap <silent> <leader>- :vertical resize -5<CR>

"YCM"
nnoremap <silent> <leader>gd :YcmCompleter GoTo<CR>
nnoremap <silent> <leader>gf :YcmCompleter FixIt<CR>