Skip to content

Instantly share code, notes, and snippets.

@phanviet
Last active April 1, 2018 05:35
Show Gist options
  • Save phanviet/04d2b1d0cdaf9879748672c679c47fa6 to your computer and use it in GitHub Desktop.
Save phanviet/04d2b1d0cdaf9879748672c679c47fa6 to your computer and use it in GitHub Desktop.
set nocompatible " be iMproved, required
filetype off " required
call plug#begin('~/.local/share/nvim/plugged')
" Project management
Plug 'scrooloose/nerdtree'
" Ctags
Plug 'fntlnz/atags.vim'
" Syntax checking
Plug 'chiel92/vim-autoformat'
Plug 'sheerun/vim-polyglot'
Plug 'keith/swift.vim'
" Multi cursors
Plug 'terryma/vim-multiple-cursors'
" quote
Plug 'tpope/vim-surround'
Plug 'jiangmiao/auto-pairs'
Plug 'dhruvasagar/vim-table-mode'
Plug 'luochen1990/rainbow'
" tmux
Plug 'christoomey/vim-tmux-navigator'
Plug 'benmills/vimux'
" Search
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
Plug 'eugen0329/vim-esearch'
" Tab alginment
Plug 'godlygeek/tabular'
Plug 'nathanaelkane/vim-indent-guides'
" Browse tag
Plug 'majutsushi/tagbar'
" Comment
Plug 'tomtom/tcomment_vim'
" Git gutter
Plug 'airblade/vim-gitgutter'
" Javascript improve
Plug 'pangloss/vim-javascript'
Plug 'leafgarland/typescript-vim'
Plug 'ternjs/tern_for_vim'
Plug 'mxw/vim-jsx'
" Quick move in file
Plug 'easymotion/vim-easymotion'
" For Ruby & Rails
Plug 'vim-ruby/vim-ruby'
Plug 'tpope/vim-rails'
Plug 'tpope/vim-endwise'
Plug 'kagux/vim-rubocop-autocorrect'
" Front end
Plug 'mattn/emmet-vim'
Plug 'othree/html5.vim'
Plug 'tpope/vim-markdown'
Plug 'hail2u/vim-css3-syntax'
Plug 'cakebaker/scss-syntax.vim'
Plug 'ap/vim-css-color'
Plug 'csscomb/vim-csscomb'
" Plug 'HTML-AutoCloseTag'
Plug 'tyru/open-browser.vim'
Plug 'valloric/MatchTagAlways'
Plug 'digitaltoad/vim-pug'
" Style guide
Plug 'editorconfig/editorconfig-vim'
" Themes
Plug 'liuchengxu/space-vim-dark'
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
Plug 'tpope/vim-repeat'
Plug 'rust-lang/rust.vim'
call plug#end()
syntax on
let mapleader = ','
let maplocalleader = '\'
set mouse=a
set langmenu=en_US
let $LANG = 'en_US'
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab
set noswapfile
set colorcolumn=80
set clipboard=unnamedplus
set cursorline
" Theme config
set termguicolors
colorscheme space-vim-dark
" hi Comment cterm=italic
" colorscheme molokai
" colorscheme gruvbox
" colorscheme dracula
" colorscheme space-vim-dark
" hi Comment cterm=italic
" set background=dark
" colorscheme solarized8
" colorscheme PaperColor
" let ayucolor="light"
" colorscheme ayu
" Show line numbers
set number
set relativenumber
" toggle highlight.
set hlsearch!
nnoremap <Leader>hl :set hlsearch!<CR>
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l
tnoremap <Esc> <C-\><C-n>
nnoremap <silent> <BS> <c-w>h<cr>
inoremap jj <ESC>
" Ctags & definition
map <Leader>F :vsp <CR>:wincmd l<CR>:exec("tag ".expand("<cword>"))<CR>
map <Leader>f :exec("tag ".expand("<cword>"))<CR>
" NERDTree config
map <C-\> :NERDTreeToggle<CR>
map <Leader>\ :NERDTreeFind<CR>
" Tagbar config
nmap <Leader>tb :TagbarToggle<CR>
" Navigation config
map vv :vsplit<CR>
map ss :split<CR>
" Indent guides
let g:indent_guides_start_level=2
let g:indent_guides_guide_size=1
nnoremap <Leader>ti :IndentGuidesToggle<cr>
" Parenthese
let g:rainbow_active = 1
" Tabular Alignment config
nmap <Leader>a= :Tabularize /=<CR>
vmap <Leader>a= :Tabularize /=<CR>
nmap <Leader>a: :Tabularize /:<CR>
vmap <Leader>a: :Tabularize /:<CR>
nmap <Leader>a:: :Tabularize /:\\zs<CR>
vmap <Leader>a:: :Tabularize /:\\zs<CR>
nmap <Leader>a, :Tabularize /,<CR>
vmap <Leader>a, :Tabularize /,<CR>
" better key bindings for UltiSnipsExpandTrigger
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"
" fzf
let g:fzf_action = {
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit'
\ }
nnoremap <C-p> :FZF<cr>
nnoremap <C-]> g<C-]>
let $FZF_DEFAULT_COMMAND = 'ag -l -g ""'
" Ctags
nnoremap <Leader>t :call atags#generate()<cr>
" autocmd BufWritePost * call atags#generate()
let g:atags_build_commands_list = [
\ "ag --ruby --python --cpp --js --ts -g '' | ctags -L - --fields=+l -f tags.tmp",
\ "awk 'length($0) < 400' tags.tmp > tags",
\ "rm tags.tmp"
\ ]
let g:jsx_ext_required = 0
let g:esearch = {
\ 'adapter': 'ag',
\ 'backend': 'nvim',
\ 'out': 'win',
\ 'batch_size': 1000,
\ 'use': ['visual', 'hlsearch', 'last'],
\}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment