syntax on set number set cursorline set expandtab tabstop=4 shiftwidth=4 softtabstop=4 set autoindent set spelllang=vi,en " Fold set foldmethod=syntax set foldlevel=1 set foldnestmax=1 set encoding=utf8 " Search set hlsearch nnoremap i :nohls<CR>i " Plugin call plug#begin() Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'preservim/nerdtree' Plug 'preservim/nerdcommenter' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'kevinhwang91/nvim-bqf' Plug 'morhetz/gruvbox' Plug 'tpope/vim-fugitive' Plug 'ynkdir/vim-diff' call plug#end() "Color scheme colorscheme gruvbox let g:gruvbox_contrast_light = 'hard' set background=dark " Comments let mapleader = "," "Open NERDTree :nnoremap <silent> <expr> <F2> g:NERDTree.IsOpen() ? "\:NERDTreeClose<CR>" : bufexists(expand('%')) ? "\:NERDTreeFind<CR>" : "\:NERDTree<CR>" "Coc.nvim inoremap <silent><expr> <TAB> \ coc#pum#visible() ? coc#_select_confirm() : \ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" : \ CheckBackSpace() ? "\<TAB>" : \ coc#refresh() inoremap <silent><expr> <CR> coc#pum#visible() ? coc#_select_confirm() : coc#refresh() function! CheckBackSpace() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction let g:coc_snippet_next = '<tab>' " remap save nnoremap <space> :w<CR> " moving between windows nnoremap <C-h> <C-W>h nnoremap <C-j> <C-W>j nnoremap <C-k> <C-W>k nnoremap <C-l> <C-W>l nnoremap <C-Left> <C-W>h nnoremap <C-Down> <C-W>j nnoremap <C-Up> <C-W>k nnoremap <C-Right> <C-W>l nnoremap <leader>to :tabonly<CR> nnoremap <leader>o :only<CR> nnoremap <leader><tab> :tabn<CR> nnoremap <S-tab> :tabp<CR> "set clipboard+=unnamedplus " " Copy to clipboard vnoremap <leader>y "+y nnoremap <leader>Y "+yg_ nnoremap <leader>y "+y nnoremap <leader>yy "+yy " " Paste from clipboard nnoremap <leader>p "+p nnoremap <leader>P "+P " FZF key mapping nnoremap <silent> <Leader>b :Buffers<CR> nnoremap <silent> <Leader>r :Rg<CR> nnoremap <silent> <Leader>f :Files<CR> nnoremap <silent> <Leader>g :GFiles<CR> nnoremap <silent> <Leader>w :Rg <C-R><C-W><CR> filetype plugin on set splitright set splitbelow