Created
November 1, 2015 17:12
-
-
Save m-basov/c18b96adc2c8c8175b38 to your computer and use it in GitHub Desktop.
Nvim temp storage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"=============================================================================== | |
"=== | |
"=== Plugins | |
"=== | |
"=============================================================================== | |
" Init plugins {{ | |
call plug#begin('~/.config/nvim/plugged') | |
" Themes | |
Plug 'flazz/vim-colorschemes' | |
" General | |
Plug 'editorconfig/editorconfig-vim' | |
Plug 'nathanaelkane/vim-indent-guides' | |
Plug 'ervandew/supertab' | |
Plug 'qpkorr/vim-bufkill' | |
Plug 'haya14busa/incsearch.vim' | |
Plug 'xolox/vim-misc' | |
" Interface | |
Plug 'bling/vim-airline' | |
Plug 'scrooloose/nerdtree' | |
Plug 'jistr/vim-nerdtree-tabs' | |
Plug 'majutsushi/tagbar' | |
Plug 'kien/ctrlp.vim' | |
Plug 'airblade/vim-gitgutter' | |
Plug 'Xuyuanp/nerdtree-git-plugin' | |
" Syntax | |
Plug 'benekastah/neomake' | |
Plug 'ntpeters/vim-better-whitespace' | |
Plug 'godlygeek/tabular' | |
Plug 'cakebaker/scss-syntax.vim' | |
Plug 'luochen1990/rainbow' | |
Plug 'pangloss/vim-javascript' | |
Plug 'scrooloose/nerdcommenter' | |
Plug 'mustache/vim-mustache-handlebars' | |
Plug 'mattn/emmet-vim' | |
Plug 'suan/vim-instant-markdown' | |
Plug 'fatih/vim-go' | |
Plug 'rust-lang/rust.vim' | |
Plug 'vim-ruby/vim-ruby' | |
Plug 'tpope/vim-endwise' | |
Plug 'mxw/vim-jsx' | |
" Autocomplete | |
Plug 'Valloric/YouCompleteMe', { 'do': './install.py --gocode-completer' } | |
Plug 'xolox/vim-easytags' | |
Plug 'Raimondi/delimitMate' | |
" Git | |
Plug 'tpope/vim-fugitive' | |
call plug#end() | |
" }} | |
"=============================================================================== | |
"=== | |
"=== Configure Neovim/Plugins | |
"=== | |
"=============================================================================== | |
" General {{ | |
" Apply config on save | |
autocmd! bufwritepost init.vim source ~/.config/nvim/init.vim | |
" Use default OS clipboard | |
set clipboard=unnamed | |
" Show lines number | |
set number | |
" Ignore case on search | |
set ignorecase | |
" Or respect case if keyword contains uppercase letters | |
set smartcase | |
" Translate tab to spaces | |
set expandtab | |
" Number of spaces that replaces tab | |
set tabstop=2 | |
set softtabstop=2 | |
set shiftwidth=2 | |
" Disable bell sound and replace with flash | |
set visualbell | |
" Disable backups | |
set nobackup | |
set nowb | |
" Disable swap file | |
set noswapfile | |
" Allow to swith between buffers without saving | |
set hidden | |
" Highlight current line and column | |
set cursorline cursorcolumn | |
" Disable redrawing interface when executing commands without output | |
set lazyredraw | |
" Donot insert 2 spaces in join command | |
set nojoinspaces | |
" TODO: Find description | |
set noshowmode | |
" Use old regex engine for backward compatibility | |
set regexpengine=1 | |
" Faster startup without welcome message | |
set shortmess=atI | |
" Scroll if 3 lines are left | |
set scrolloff=3 | |
" Ignore extensions list in autocomplete tooltip | |
set suffixes=.bak,~,.swp,.swo,.o,.d,.info,.aux,.log,.dvi,.pdf,.bin,.bbl,.blg,.brf,.cb,.dmg,.exe,.ind,.idx,.ilg,.inx,.out,.toc,.pyc,.pyd,.dll | |
" Show hidden symbols | |
set list | |
set lcs=tab:▸\ ,trail:·,eol:¬,nbsp:_ | |
" Move cursor to the first non-blanl line | |
set nostartofline | |
" Don't wrap long lines | |
set nowrap | |
" Add ruller | |
let &colorcolumn="80,".join(range(120,999),",") | |
" Fast switching between mode | |
set ttimeoutlen=10 | |
au InsertEnter * set timeoutlen=0 | |
au InsertLeave * set timeoutlen=1000 | |
" }} | |
" Interface {{ | |
let g:molotov = 1 | |
" TODO: Check if this is required | |
set t_Co=256 | |
set background=dark | |
colorscheme molotov | |
" }} | |
" Airline {{ | |
" Populate airline symbols from patched font | |
let g:airline_powerline_fonts = 1 | |
" Show PASTE mode at airline | |
let g:airline_detect_paste=1 | |
" Enable neomake airline extension | |
let g:airline#extensions#neomake#enable = 1 | |
" TODO: Add description | |
let g:airline#extensions#tabline#buffer_nr_format = '%s ' | |
let g:airline#extensions#tabline#buffer_nr_show = 1 | |
let g:airline#extensions#tabline#fnamecollapse = 0 | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:airline#extensions#tabline#fnamemod = ':t' | |
" }} | |
" Neomake {{ | |
autocmd! BufWritePost * Neomake | |
let g:neomake_javascript_enabled_makers = ['eslint'] | |
let g:neomake_open_list = 1 | |
let g:neomake_list_height = 5 | |
"}} | |
" NERDTree {{ | |
let g:nerdtree_tabs_open_on_console_startup = 1 | |
let NERDTreeShowHidden=1 | |
let NERDTreeIgnore=['.git$[[dir]]', '.DS_STORE$[[file]]', '*.swp$[[file]]', 'tmp[[dir]]'] | |
" }} | |
" Tagbar {{ | |
set tags=~/.nvimtags | |
let g:easytags_events = ['BufReadPost', 'BufWritePost'] | |
let g:easytags_async = 1 | |
let g:easytags_dynamic_files = 2 | |
let g:easytags_resolve_links = 1 | |
let g:easytags_suppress_ctags_warning = 1 | |
" }} | |
" Git gutter {{ | |
hi clear SignColumn | |
let g:airline#extensions#hunks#non_zero_only = 1 | |
" }} | |
" DelimitMate {{ | |
let delimitMate_expand_cr = 1 | |
au FileType markdown let b:delimitMate_nesting_quotes = ["`"] | |
au FileType tex let b:delimitMate_quotes = "" | |
au FileType tex let b:delimitMate_matchpairs = "(:),[:],{:},`:'" | |
au FileType python let b:delimitMate_nesting_quotes = ['"', "'"] | |
" }} | |
" Rainbow brackets {{ | |
let g:rainbow_active = 1 | |
let g:rainbow_conf = { | |
\ 'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'], | |
\ 'operators': '_,_', | |
\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'], | |
\ 'separately': { | |
\ '*': {}, | |
\ 'html': 0, | |
\ 'css': 0, | |
\ 'sml': { | |
\ 'parentheses': ['start=/(\(\*\)\@!/ end=/\(\*\)\@<!)/', 'start=/\[/ end=/\]/ fold'] | |
\ } | |
\ } | |
\} | |
" }} | |
" Mustache {{ | |
let g:mustache_abbreviations = 1 | |
au BufRead,BufNewFile *.hbs,*.handlebars,*.hbs.erb,*.handlebars.erb setl ft=mustache syntax=mustache | |
" }} | |
" Emmet {{ | |
let g:user_emmet_install_global = 0 | |
autocmd FileType html,css,html.handlebars EmmetInstall | |
let g:user_emmet_mode='n' | |
let g:user_emmet_expandabbr_key = '<Tab>' | |
" }} | |
" CtrlP {{ | |
let g:ctrlp_custom_ignore = 'node_modules\|DS_Store\|git\|tmp\|bower_components' | |
" Do not clear filenames cache, to improve CtrlP startup | |
let g:ctrlp_clear_cache_on_exit = 0 | |
" Set delay to prevent extra search | |
let g:ctrlp_lazy_update = 350 | |
" Jump to tab AND buffer if already open | |
let g:ctrlp_switch_buffer = 'Et' | |
" Open newly created files in the current window | |
let g:ctrlp_open_new_file = 'r' | |
" Open multiple files in hidden buffers, and jump to the first one | |
let g:ctrlp_open_multiple_files = 'ij' | |
" }} | |
" Go {{ | |
let g:go_highlight_functions = 1 | |
let g:go_highlight_methods = 1 | |
let g:go_highlight_structs = 1 | |
let g:go_highlight_operators = 1 | |
let g:go_highlight_build_constraints = 1 | |
" }} | |
" JSX {{ | |
let g:jsx_ext_required = 0 | |
" }} | |
" Incsearch {{ | |
let g:incsearch#auto_nohlsearch = 1 | |
" }} | |
" NERDTreeGit {{ | |
let g:NERDTreeIndicatorMapCustom = { | |
\ "Modified" : "✹", | |
\ "Staged" : "✚", | |
\ "Untracked" : "✭", | |
\ "Renamed" : "➜", | |
\ "Unmerged" : "═", | |
\ "Deleted" : "✖", | |
\ "Dirty" : "✗", | |
\ "Clean" : "✔︎", | |
\ "Unknown" : "?" | |
\ } | |
" }} | |
" YouCompleteMe {{ | |
let g:ycm_filetype_whitelist = { '*': 1 } | |
let g:ycm_filetype_blacklist = { | |
\ 'markdown': 1, | |
\ 'tagbar': 1, | |
\ 'tex': 1, | |
\ 'nerdtree': 1 | |
\} | |
let g:ycm_show_diagnostics_ui = 0 | |
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif | |
autocmd InsertLeave * if pumvisible() == 0|pclose|endif | |
" }} | |
"=============================================================================== | |
"=== | |
"=== Functions | |
"=== | |
"=============================================================================== | |
" Strip trailing whitespaces {{ | |
function! StripWhitespace () " {{{ | |
let save_cursor = getpos(".") | |
let old_query = getreg('/') | |
:%s/\s\+$//e | |
call setpos('.', save_cursor) | |
call setreg('/', old_query) | |
endfunction " }}} | |
" }} | |
"=============================================================================== | |
"=== | |
"=== Key bindings | |
"=== | |
"=============================================================================== | |
" Remap leader (,) {{ | |
let mapleader="," | |
" }} | |
" Toggle NERDTreeToggle (,T) {{ | |
nmap <silent> <leader>T :NERDTreeTabsToggle<CR> | |
" }} | |
" Tagbar toggle (Ctrl-B) {{ | |
nmap <silent> <leader>B :TagbarToggle<CR> | |
" }} | |
" Go {{ | |
" (,r) | |
au FileType go nmap <leader>r <Plug>(go-run) | |
" (,b) | |
au FileType go nmap <leader>b <Plug>(go-build) | |
" (,t) | |
au FileType go nmap <leader>t <Plug>(go-test) | |
" (,c) | |
au FileType go nmap <leader>c <Plug>(go-coverage) | |
" }} | |
" Incsearch {{ | |
map / <Plug>(incsearch-forward) | |
map ? <Plug>(incsearch-backward) | |
map g/ <Plug>(incsearch-stay) | |
map n <Plug>(incsearch-nohl-n) | |
map N <Plug>(incsearch-nohl-N) | |
map * <Plug>(incsearch-nohl-*) | |
map # <Plug>(incsearch-nohl-#) | |
map g* <Plug>(incsearch-nohl-g*) | |
map g# <Plug>(incsearch-nohl-g#) | |
" }} | |
" Insert empty line (,Enter) {{ | |
map <leader><Enter> o<ESC> | |
" }} | |
" Stripe whitespaces (,ss) {{ | |
noremap <leader>ss :call StripWhitespace ()<CR> | |
" }} | |
" Open CtrlP buffers (,bs) {{ | |
nnoremap <leader>bs :CtrlPBuffer<CR> | |
" }} | |
" Buffer navigation {{ | |
" (,Ctrl-^) | |
map <Leader>, <C-^> | |
" (,ls) | |
map <Leader>ls :buffers<CR> | |
" gb | |
map gb :bnext<CR> | |
" gB | |
map gB :bprev<CR> | |
" }} | |
" Close QuickFix window (,qq) {{ | |
map <leader>qq :cclose<CR> | |
" }} | |
" Pane navigations {{ | |
nnoremap <c-j> <c-w>j | |
nnoremap <c-k> <c-w>k | |
nnoremap <c-h> <c-w>h | |
nnoremap <c-l> <c-w>l | |
" }} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment