Skip to content

Instantly share code, notes, and snippets.

@yun-cloud
Last active April 8, 2018 06:27
Show Gist options
  • Save yun-cloud/04cd7a80ea0a5ace2bde1eb3e78c2f3d to your computer and use it in GitHub Desktop.
Save yun-cloud/04cd7a80ea0a5ace2bde1eb3e78c2f3d to your computer and use it in GitHub Desktop.
vimrc on OS 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 'jiangmiao/auto-pairs'
Plug 'mhinz/vim-startify'
Plug 'tpope/vim-surround'
Plug 'vim-airline/vim-airline'
" Utility
Plug 'ctrlpvim/ctrlp.vim'
Plug 'junegunn/vim-easy-align'
Plug 'scrooloose/nerdtree'
Plug 'tpope/vim-commentary'
Plug 'junegunn/limelight.vim'
Plug 'junegunn/goyo.vim'
Plug 'vim-scripts/a.vim'
Plug 'mattn/gist-vim' | Plug 'mattn/webapi-vim'
" tag
Plug 'majutsushi/tagbar'
Plug 'vim-scripts/taglist.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'
" Colorscheme
Plug 'chriskempson/base16-vim'
Plug 'joshdick/onedark.vim'
Plug 'morhetz/gruvbox'
" Highlight
Plug 'octol/vim-cpp-enhanced-highlight'
" Git
Plug 'airblade/vim-gitgutter'
call plug#end()
set nocompatible
set number
set relativenumber
set showmatch
set smartcase
set ignorecase
set splitbelow
set cursorline
set incsearch
set laststatus=2
set statusline="[%n]\ %<%F\ \ \ [%M%R%H%W%Y][%{&ff}]\ \ %=\ line:%l/%L\ col:%c\ \ \ %p%%"
set list
set autoindent
set smarttab
" set listchars=tab:»∙,trail:∙,precedes:<,extends:>
set listchars=tab:»\ ,trail:∙,precedes:<,extends:>
set wildignore+=*/tmp/*,*.so,*.swp,*.zip
set cot-=preview
set background=dark
" au FileType cpp setlocal expandtab sw=2 ts=2 tw=80 wrap
au FileType cpp setlocal noexpandtab tabstop=8 softtabstop=4 shiftwidth=4 tw=80 wrap
if executable("rg")
set grepprg=rg\ --vimgrep\ --no-heading
set grepformat=%f:%l:%c:%m,%f:%l:%m
endif
colo desert
colo gruvbox
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>
" tab navigation
nnoremap th :tabprevious<CR>
nnoremap tl :tabnext<CR>
nnoremap tH :tabfirst<CR>
nnoremap tL :tablast<CR>
nnoremap tn :tabnew<CR>
nnoremap td :tabclose<CR>
nnoremap tm :tabmove<Space>
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-startify]
let g:startify_list_order = [
\ [' Bookmarks'],
\ 'bookmarks',
\ [' MRU directories'],
\ 'dir',
\ [' MRU files'],
\ 'files',
\ ]
let g:startify_bookmarks = [
\ {'mp4': '~/mp4/'},
\ {'b4': '~/NachOS-4.0_MP4/'},
\ {'james': '~/xy/NachOS/'},
\ {'c': '~/.vimrc'},
\ ]
let g:startify_enable_special = 0
let g:startify_files_number = 5
" ## [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>
command! -bang -nargs=* Rg
\ call fzf#vim#grep(
\ 'rg --column --line-number --no-heading --color=always --ignore-case '.shellescape(<q-args>), 1,
\ <bang>0 ? fzf#vim#with_preview('up:60%')
\ : fzf#vim#with_preview('right:50%:hidden', '?'),
\ <bang>0)
nnoremap <Leader>sw :Rg <C-R><C-W><CR>
nnoremap <Leader>ss :Rg<Space>
" ## [tagbar]
nnoremap <F6> :TagbarToggle<CR>
" ## [taglist.vim]
nnoremap <F7> :TlistToggle<CR>
" ## [limelight.vim]
let g:limelight_conceal_ctermfg = 239
let g:limelight_paragraph_span = 1
autocmd! User GoyoEnter Limelight
autocmd! User GoyoLeave Limelight!
" ## [goyo.vim]
let g:goyo_width = 70
" ## [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]
" powerline symbols
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
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 = ''
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment