|
|
|
" Plugin Settings |
|
call plug#begin('~/.vim/plugged') |
|
Plug 'lifepillar/vim-solarized8' |
|
Plug 'tomtom/tcomment_vim' |
|
Plug 'editorconfig/editorconfig-vim' |
|
Plug 'bronson/vim-trailing-whitespace' |
|
Plug 'ctrlpvim/ctrlp.vim' |
|
Plug 'itchyny/lightline.vim' |
|
Plug 'easymotion/vim-easymotion' |
|
Plug 'airblade/vim-gitgutter' |
|
Plug 'nathanaelkane/vim-indent-guides' |
|
Plug 'dhruvasagar/vim-table-mode' |
|
Plug 'neoclide/coc.nvim', {'branch': 'release'} |
|
Plug 'leafgarland/typescript-vim' |
|
Plug 'peitalin/vim-jsx-typescript' |
|
Plug 'preservim/nerdtree' |
|
Plug 'PhilRunninger/nerdtree-buffer-ops' |
|
call plug#end() |
|
|
|
" To properly drow CJK characters |
|
set ambiwidth=double |
|
|
|
" Show 80th character vertical line |
|
set colorcolumn=100 |
|
highlight ColorColumn ctermbg=9 |
|
|
|
" colorscheme |
|
set termguicolors |
|
let &t_8f = "\[38;2;%lu;%lu;%lum" |
|
let &t_8b = "\[48;2;%lu;%lu;%lum" |
|
set background=dark |
|
colorscheme solarized8 |
|
|
|
" ignore case on searching |
|
set ignorecase |
|
|
|
" Use clipboard as anonymous register |
|
set clipboard=unnamed |
|
|
|
" file change detection |
|
autocmd FocusGained,BufEnter,CursorHold,CursorHoldI * if mode() != 'c' | checktime | endif |
|
autocmd FileChangedShellPost * |
|
\ echohl WarningMsg | echo "File changed on disk. Buffer reloaded." | echohl None |
|
|
|
" ctrlp http://ctrlpvim.github.io/ctrlp.vim/ |
|
let g:ctrlp_map = '<Leader>p' |
|
let g:ctrlp_cmd = 'CtrlP' |
|
|
|
" vim-indent-guides https://github.com/nathanaelkane/vim-indent-guides |
|
let g:indent_guides_guide_size = 1 |
|
let g:indent_guides_color_change_percent = 3 |
|
|
|
" typescript.tsx |
|
autocmd BufNewFile,BufRead *.tsx,*.jsx set filetype=typescriptreact |
|
hi tsxTagName ctermfg=13 guifg=#E06C75 |
|
hi tsxCloseString guifg=#F99575 |
|
hi tsxCloseTag guifg=#F99575 |
|
hi tsxCloseTagName ctermfg=124 guifg=#F99575 |
|
hi tsxAttributeBraces guifg=#F99575 |
|
hi tsxEqual guifg=#F99575 |
|
hi tsxAttrib guifg=#F8BD7F cterm=italic |
|
hi tsxTypeBraces guifg=#999999 |
|
hi tsxTypes guifg=#666666 |
|
hi ReactState guifg=#C176A7 |
|
hi ReactProps guifg=#D19A66 |
|
hi ApolloGraphQL guifg=#CB886B |
|
hi Events ctermfg=204 guifg=#56B6C2 |
|
hi ReduxKeywords ctermfg=204 guifg=#C678DD |
|
hi ReduxHooksKeywords ctermfg=204 guifg=#C176A7 |
|
hi WebBrowser ctermfg=204 guifg=#56B6C2 |
|
hi ReactLifeCycleMethods ctermfg=204 guifg=#D19A66 |
|
|
|
" Custom keymaps |
|
let mapleader="," |
|
nmap <silent> <C-N> :tabnext<CR> |
|
nmap <silent> <C-P> :tabprevious<CR> |
|
nmap <C-Y> :registers<cr> |
|
nmap <F10> :set paste<cr> |
|
nmap <F9> :set nopaste<cr> |
|
nmap <F8> :IndentGuidesToggle<cr> |
|
|
|
source ${HOME}/.config/nvim/coc.vim |
|
|
|
" |
|
" NerdTree |
|
" |
|
|
|
" Start NERDTree and put the cursor back in the other window. |
|
autocmd VimEnter * NERDTree | wincmd p |
|
|
|
" Open the existing NERDTree on each new tab. |
|
autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif |
|
|
|
" Exit Vim if NERDTree is the only window remaining in the only tab. |
|
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif |
|
|
|
" Close the tab if NERDTree is the only window remaining in it. |
|
autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif |
|
|
|
nnoremap <leader>f :NERDTreeFind<CR> |