Skip to content

Instantly share code, notes, and snippets.

@yun-cloud
Last active May 15, 2018 11:04
Show Gist options
  • Save yun-cloud/20fc5567cbde5340fd3b2f38543c5fe2 to your computer and use it in GitHub Desktop.
Save yun-cloud/20fc5567cbde5340fd3b2f38543c5fe2 to your computer and use it in GitHub Desktop.
.vimrc on compiler server
if empty(glob('~/.vim/autoload//plug.vim'))
silent !curl -fLo ~/.vim/autoload//plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
endif
call plug#begin('~/.vim/plugged')
" Misc
Plug 'tpope/vim-sensible'
Plug 'jiangmiao/auto-pairs'
"Plug 'mhinz/vim-startify'
Plug 'tpope/vim-surround'
Plug 'vim-airline/vim-airline'
Plug 'editorconfig/editorconfig-vim'
" Utility
Plug 'ctrlpvim/ctrlp.vim'
Plug 'junegunn/vim-easy-align'
Plug 'scrooloose/nerdtree'
Plug 'tpope/vim-commentary'
Plug 'easymotion/vim-easymotion'
Plug 'mattn/gist-vim' | Plug 'mattn/webapi-vim'
" fzf
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" Completion
" Plug 'ervandew/supertab'
" Plug 'vim-scripts/AutoComplPop'
" Plug 'ajh17/VimCompleteMe'
" Plug 'vim-scripts/OmniCppComplete'
Plug 'lifepillar/vim-mucomplete'
" Colorscheme
Plug 'morhetz/gruvbox'
" Highlight
Plug 'octol/vim-cpp-enhanced-highlight'
" Git
" has some weird bug
" Plug 'airblade/vim-gitgutter'
" Filetype
Plug 'dag/vim-fish'
call plug#end()
set nocompatible
set number
"set relativenumber
set showmatch
set smartcase
set ignorecase
set splitbelow
set cursorline
set incsearch
set hlsearch
set laststatus=2
set statusline="[%n]\ %<%F\ \ \ [%M%R%H%W%Y][%{&ff}]\ \ %=\ line:%l/%L\ col:%c\ \ \ %p%%"
set list
set listchars=tab:»\ ,trail:∙,precedes:<,extends:>
" set listchars=tab:»∙,trail:∙,precedes:<,extends:>
set wildignore+=*/tmp/*,*.so,*.swp,*.zip
set background=dark
" see vim-mucomplete also
set completeopt-=preview
set autoindent
"set smartindent
set smarttab
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4
au FileType sh setlocal expandtab sw=2 ts=2 sts=2
let mapleader = "\<SPACE>"
nnoremap <Space> <Nop>
inoremap jk <ESC>
inoremap kj <ESC>
inoremap j; <ESC>:
nnoremap ; :
nnoremap : ;
xnoremap ; :
xnoremap : ;
nnoremap j gj
nnoremap k gk
nnoremap n nzz
nnoremap N Nzz
nnoremap <silent>0 :call ToggleMovement('^', '0')<CR>
function! ToggleMovement(firstOp, thenOp)
let pos = getpos('.')
execute "normal! " . a:firstOp
if pos == getpos('.')
execute "normal! " . a:thenOp
endif
endfunction
" config file
nnoremap <Leader>fed :e $MYVIMRC<CR>
nnoremap <Leader>feu :source $MYVIMRC<CR>:PlugUpdate<CR>
nnoremap <Leader>feR :source $MYVIMRC<CR>
nnoremap <Leader><TAB> <C-^>
nnoremap <Leader>wh <C-W>h
nnoremap <Leader>wj <C-W>j
nnoremap <Leader>wk <C-W>k
nnoremap <Leader>wl <C-W>l
nnoremap <Leader>ww <C-W><C-W>
nnoremap <Leader>ws <C-W>s
nnoremap <Leader>wv <C-W>v
nnoremap <Leader>w= <C-W>=
nnoremap <Leader>wm :only<CR>
nnoremap <Leader>wc :q<CR>
nnoremap <silent> <Leader>j= mogg=G`ozz
nnoremap <silent> <Leader>ja :A<CR>
nnoremap <silent> <Leader>rtw :%s/\s\+$//e<CR>:noh<CR>''
nnoremap <silent> <Leader>sc :noh<CR>
" ## [vim-easy-align]
xmap ga <Plug>(EasyAlign)
nmap ga <Plug>(EasyAlign)
" ## [nerd-tree]
let g:NERDTreeIgnore=[
\ '\~$',
\ '*.o'
\ ]
nnoremap <F5> :NERDTreeToggle<CR>
" ## [ctrlp.vim]
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git)$',
\ 'file': '\v\.(exe|so|dll)$'
\ }
let g:ctrlp_max_files = 2047
let g:ctrlp_max_depth = 15
" Multiple VCS's:
let g:ctrlp_user_command = {
\ 'types': {
\ 1: ['.git', 'cd %s && git ls-files'],
\ 2: ['.hg', 'hg --cwd %s locate -I .'],
\ },
\ 'fallback': 'find %s -type f'
\ }
" nnoremap <Leader>ff :CtrlP<CR>
nnoremap <Leader>fr :CtrlPMRU<CR>
nnoremap <Leader>pf :CtrlPRoot<CR>
" nnoremap <Leader>bb :CtrlPBuffer<CR>
" ## [vim-commentary]
nmap <Leader>; <Plug>Commentary
omap <Leader>; <Plug>Commentary
vmap <Leader>; <Plug>Commentary
nmap <Leader>;; <Plug>CommentaryLine
" ## [vim-cpp-enhanced-highlight]
let g:cpp_class_scope_highlight = 1
let g:cpp_member_variable_highlight = 1
let g:cpp_class_decl_highlight = 1
" let g:cpp_member_variable_highlight = 1
let g:cpp_class_decl_highlight = 1
" ## [fzf.vim]
nnoremap <Leader>ff :Files<CR>
nnoremap <Leader>bb :Buffers<CR>
nnoremap <Leader>l :BLines<CR>
nnoremap <Leader>h :Helptags<CR>
nnoremap <Leader>t :Tags<CR>
" ## [vim-gitgutter]
let g:gitgutter_map_keys = 0
" hunk or change
nmap <Leader>ghs <Plug>GitGutterStageHunk
nmap <Leader>ghu <Plug>GitGutterUndoHunk
nmap <Leader>ghp <Plug>GitGutterPreviewHunk
omap ic <Plug>GitGutterTextObjectInnerPending
omap ac <Plug>GitGutterTextObjectOuterPending
xmap ic <Plug>GitGutterTextObjectOuterVisual
xmap ac <Plug>GitGutterTextObjectOuterVisual
nmap ]c <Plug>GitGutterNextHunk
nmap [c <Plug>GitGutterPrevHunk
" ## [vim-airline]
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 = '◀'
let g:airline_symbols.crypt = '🔒'
let g:airline_symbols.linenr = '☰'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.maxlinenr = ''
let g:airline_symbols.maxlinenr = '㏑'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.spell = 'Ꞩ'
let g:airline_symbols.notexists = '∄'
let g:airline_symbols.whitespace = 'Ξ'
" powerline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = '☰'
let g:airline_symbols.maxlinenr = ''
" extension: branch
let g:airline#extensions#branch#enabled = 1
let g:airline#extensions#branch#vcs_priority = ["git", "mercurial"]
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_idx_mode = 0
let g:airline#extensions#tabline#show_splits = 0
let g:airline#extensions#tabline#show_tab_nr = 0
let g:airline#extensions#whitespace#enabled = 1
let g:airline#extensions#whitespace#mixed_indent_algo = 2
let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing', 'long' ]
nmap <leader>1 <Plug>AirlineSelectTab1
nmap <leader>2 <Plug>AirlineSelectTab2
nmap <leader>3 <Plug>AirlineSelectTab3
nmap <leader>4 <Plug>AirlineSelectTab4
nmap <leader>5 <Plug>AirlineSelectTab5
nmap <leader>6 <Plug>AirlineSelectTab6
nmap <leader>7 <Plug>AirlineSelectTab7
nmap <leader>8 <Plug>AirlineSelectTab8
nmap <leader>9 <Plug>AirlineSelectTab9
" ## [gruvbox]
colo gruvbox
" ## [vim-mucomplete]
set completeopt+=menuone
let g:mucomplete#enable_auto_at_startup = 1
" ## [vim-easymotion]
let g:EasyMotion_smartcase = 1
nmap s <Plug>(easymotion-s2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment