mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-11 11:43:03 +03:00
Major rehaul
This commit is contained in:
parent
8d845533bc
commit
9765735574
1 changed files with 389 additions and 311 deletions
700
nvim/init.vim
700
nvim/init.vim
|
|
@ -2,23 +2,45 @@ call plug#begin('~/.local/share/nvim/plugged')
|
|||
|
||||
"UI
|
||||
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
|
||||
Plug 'jistr/vim-nerdtree-tabs'
|
||||
Plug 'xuyuanp/nerdtree-git-plugin'
|
||||
Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
|
||||
Plug 'nathanaelkane/vim-indent-guides'
|
||||
Plug 'luochen1990/rainbow'
|
||||
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
|
||||
"Themes
|
||||
"Plug 'crusoexia/vim-monokai'
|
||||
"Plug 'lifepillar/vim-solarized8'
|
||||
"Plug 'haishanh/night-owl.vim'
|
||||
"Plug 'arcticicestudio/nord-vim'
|
||||
Plug 'drewtempelmeyer/palenight.vim'
|
||||
|
||||
Plug 'kien/tabman.vim'
|
||||
|
||||
Plug 'chrisbra/colorizer'
|
||||
Plug 'mhinz/vim-startify'
|
||||
|
||||
"Plug 'kien/tabman.vim'
|
||||
|
||||
" LaTeX
|
||||
Plug 'lervag/vimtex'
|
||||
Plug 'KeitaNakamura/tex-conceal.vim', {'for': 'tex'}
|
||||
|
||||
" Python
|
||||
Plug 'python-mode/python-mode', { 'branch': 'develop' }
|
||||
Plug 'heavenshell/vim-pydocstring'
|
||||
"Plug 'ivanov/vim-ipython'
|
||||
|
||||
" Js & Co.
|
||||
Plug 'pangloss/vim-javascript'
|
||||
Plug 'posva/vim-vue'
|
||||
Plug 'heavenshell/vim-jsdoc'
|
||||
"Plug 'mxw/vim-jsx'
|
||||
|
||||
"C++
|
||||
"Plug 'octol/vim-cpp-enhanced-highlight'
|
||||
"Plug 'zchee/deoplete-clang'
|
||||
|
||||
"Misc file formats
|
||||
Plug 'elzr/vim-json'
|
||||
Plug 'plasticboy/vim-markdown'
|
||||
Plug 'suan/vim-instant-markdown', {'for': 'markdown'} "npm -g install instant-markdown-d
|
||||
Plug 'chrisbra/csv.vim'
|
||||
"Plug 'tikhomirov/vim-glsl'
|
||||
"Plug 'digitaltoad/vim-jade'
|
||||
"Plug 'tpope/vim-jdaddy'
|
||||
|
||||
"Git
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
|
@ -26,144 +48,67 @@ Plug 'junegunn/gv.vim'
|
|||
Plug 'airblade/vim-gitgutter'
|
||||
Plug 'jreybert/vimagit'
|
||||
|
||||
"Coding
|
||||
"Plug 'valloric/youcompleteme'
|
||||
Plug 'shougo/deoplete.nvim'
|
||||
Plug 'luochen1990/rainbow'
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'valloric/matchtagalways'
|
||||
Plug 'junegunn/vim-easy-align'
|
||||
|
||||
" Plug 'mbbill/undotree'
|
||||
Plug 'simnalamburt/vim-mundo'
|
||||
Plug 'derekwyatt/vim-fswitch'
|
||||
|
||||
"Snippets stuff
|
||||
Plug 'honza/vim-snippets'
|
||||
Plug 'sirver/ultisnips'
|
||||
|
||||
"Python
|
||||
Plug 'python-mode/python-mode', { 'branch': 'develop' }
|
||||
Plug 'janko-m/vim-test'
|
||||
Plug 'heavenshell/vim-pydocstring'
|
||||
Plug 'ivanov/vim-ipython'
|
||||
"Plug 'skyleach/pudb.vim'
|
||||
|
||||
"Js & stuff
|
||||
Plug 'pangloss/vim-javascript'
|
||||
Plug 'heavenshell/vim-jsdoc'
|
||||
"Plug 'mxw/vim-jsx'
|
||||
Plug 'posva/vim-vue'
|
||||
Plug 'alvan/vim-closetag'
|
||||
|
||||
"LaTeX
|
||||
Plug 'lervag/vimtex'
|
||||
Plug 'KeitaNakamura/tex-conceal.vim', {'for': 'tex'}
|
||||
|
||||
"C++
|
||||
"Plug 'octol/vim-cpp-enhanced-highlight'
|
||||
"Plug 'zchee/deoplete-clang'
|
||||
|
||||
"Navigation
|
||||
"Plug 'ctrlpvim/ctrlp.vim'
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
Plug 'yuttie/comfortable-motion.vim'
|
||||
Plug 'vim-scripts/restore_view.vim'
|
||||
Plug 'ericbn/vim-relativize'
|
||||
"Plug 'majutsushi/tagbar'
|
||||
Plug 'liuchengxu/vista.vim'
|
||||
|
||||
"Other files
|
||||
Plug 'elzr/vim-json'
|
||||
Plug 'tpope/vim-jdaddy'
|
||||
"Plug 'tikhomirov/vim-glsl'
|
||||
Plug 'plasticboy/vim-markdown'
|
||||
"Plug 'digitaltoad/vim-jade'
|
||||
Plug 'chrisbra/csv.vim'
|
||||
Plug 'kshenoy/vim-signature'
|
||||
|
||||
Plug 'mhinz/vim-startify'
|
||||
|
||||
Plug 'suan/vim-instant-markdown', {'for': 'markdown'} "npm -g install instant-markdown-d
|
||||
|
||||
"General syntax check
|
||||
"Plug 'scrooloose/syntastic'
|
||||
" General powerful plugins
|
||||
Plug 'w0rp/ale'
|
||||
Plug 'shougo/deoplete.nvim'
|
||||
Plug 'janko-m/vim-test'
|
||||
"Plug 'valloric/youcompleteme'
|
||||
"Plug 'scrooloose/syntastic'
|
||||
|
||||
"Other
|
||||
"Plug 'https://gitlab.com/code-stats/code-stats-vim.git'
|
||||
Plug 'wakatime/vim-wakatime'
|
||||
Plug 'nathanaelkane/vim-indent-guides'
|
||||
|
||||
" Coding & navigation
|
||||
Plug 'valloric/matchtagalways'
|
||||
Plug 'alvan/vim-closetag'
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'junegunn/vim-easy-align'
|
||||
Plug 'scrooloose/nerdcommenter'
|
||||
|
||||
Plug 'jiangmiao/auto-pairs'
|
||||
"Plug 'raimondi/delimitmate'
|
||||
"Plug 'cohama/lexima.vim'
|
||||
|
||||
Plug 'kana/vim-submode'
|
||||
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
Plug 'ericbn/vim-relativize'
|
||||
Plug 'liuchengxu/vista.vim'
|
||||
Plug 'vim-scripts/restore_view.vim'
|
||||
"Plug 'kshenoy/vim-signature'
|
||||
"Plug 'ctrlpvim/ctrlp.vim'
|
||||
"Plug 'majutsushi/tagbar'
|
||||
"Plug 'yuttie/comfortable-motion.vim'
|
||||
|
||||
" Plug 'mbbill/undotree'
|
||||
" Plug 'simnalamburt/vim-mundo'
|
||||
" Plug 'derekwyatt/vim-fswitch'
|
||||
|
||||
"Themes
|
||||
Plug 'drewtempelmeyer/palenight.vim'
|
||||
"Plug 'crusoexia/vim-monokai'
|
||||
"Plug 'lifepillar/vim-solarized8'
|
||||
"Plug 'haishanh/night-owl.vim'
|
||||
"Plug 'arcticicestudio/nord-vim'
|
||||
|
||||
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
|
||||
" Misc
|
||||
Plug 'wakatime/vim-wakatime'
|
||||
|
||||
" Has to be plugged the last
|
||||
Plug 'ryanoasis/vim-devicons'
|
||||
Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
|
||||
call plug#end()
|
||||
|
||||
" General settings {{{
|
||||
set runtimepath+=~/.config/nvim/my-snippets/
|
||||
let g:codestats_api_key="SFMyNTY.VTNGeWRFMXBiblZ6VDI1bCMjTlRRek1RPT0.V3iEAki_kRH75zwoXQ3u5Zng-Q_h0XRlUsb9ld09Cdc"
|
||||
let $FZF_DEFAULT_COMMAND='fd --type f --exclude .git'
|
||||
|
||||
set exrc
|
||||
set secure
|
||||
|
||||
"LaTeX {{{
|
||||
let g:tex_flavor='latex'
|
||||
let g:vimtex_fold_enabled = 1
|
||||
let g:vimtex_view_method='zathura'
|
||||
let g:vimtex_quickfix_mode=0
|
||||
set conceallevel=2
|
||||
let g:tex_conceal='abdmgs'
|
||||
"let g:syntastic_tex_lacheck_quiet_messages = { 'regex': ['\Vpossible unwanted space at', '\VUse ` to begin'] }
|
||||
call deoplete#custom#var('omni', 'input_patterns', {
|
||||
\ 'tex': g:vimtex#re#deoplete
|
||||
\})
|
||||
let g:ale_tex_chktex_options='-I --nowarn 32'
|
||||
|
||||
" }}}
|
||||
|
||||
"Python {{{
|
||||
"let g:python_host_prog='/usr/bin/python'
|
||||
"let g:python3_host_prog='/usr/bin/python3'
|
||||
let g:pymode_python = 'python3'
|
||||
let g:pymode_lint = 0
|
||||
let g:pymode_rope = 1
|
||||
let g:pymode_rope_completion = 0
|
||||
let g:pymode_rope_autoimport = 0
|
||||
let NERDTreeIgnore = ['\.pyc$', '^__pycache__$']
|
||||
let NERDTreeMinimalUI = 1
|
||||
let NERDTreeDirArrows = 1
|
||||
|
||||
" }}}
|
||||
|
||||
"C++ {{{
|
||||
let g:deoplete#sources#clang#libclang_path = '/usr/lib/llvm-6.0/lib/libclang.so.1'
|
||||
let g:deoplete#sources#clang#clang_header = '/usr/lib/llvm-6.0/lib/clang/6.0.0/include'
|
||||
|
||||
"}}}
|
||||
|
||||
" Markdown {{{
|
||||
|
||||
let g:vim_markdown_conceal = 2
|
||||
|
||||
"}}}
|
||||
|
||||
" js {{{
|
||||
let g:closetag_filenames = "*.html,*.xhtml,*.phtml,*.php,*.jsx"
|
||||
let g:jsdoc_allow_input_prompt = 1
|
||||
let g:jsdoc_enable_es6 = 1
|
||||
let g:jsdoc_input_description = 1
|
||||
" }}}
|
||||
|
||||
au BufNewFile,BufRead *.frag,*.vert,*.fp,*.vp,*.glsl setf glsl
|
||||
|
||||
"Usability {{{
|
||||
set number
|
||||
set hlsearch
|
||||
set cursorline
|
||||
|
|
@ -171,45 +116,63 @@ set mouse=a
|
|||
set splitbelow
|
||||
set splitright
|
||||
|
||||
" Indent
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set smarttab
|
||||
set expandtab
|
||||
set autoindent
|
||||
|
||||
" Folding
|
||||
set foldmethod=syntax
|
||||
set foldlevelstart=20
|
||||
|
||||
" Global undo
|
||||
set undofile
|
||||
set undodir="~/.local/share/nvim/undo"
|
||||
|
||||
" }}}
|
||||
|
||||
" Mappings {{{
|
||||
|
||||
noremap <C-n> :NERDTreeToggle<CR>
|
||||
nnoremap <S-Ins> "+p
|
||||
noremap <C-m> :MundoToggle<CR>
|
||||
|
||||
noremap <silent> <ScrollWheelDown> :call comfortable_motion#flick(40)<CR>
|
||||
noremap <silent> <ScrollWheelUp> :call comfortable_motion#flick(-40)<CR>
|
||||
"nnoremap <Tab> :TagbarToggle<CR>
|
||||
nnoremap <Tab> :Vista!!<CR>
|
||||
nnoremap <C-p> :Files<CR>
|
||||
nnoremap <C-a> :Ag<CR>
|
||||
|
||||
nnoremap <Leader>s :%s/\<<C-r><C-w>\>/
|
||||
|
||||
nnoremap <C-p> :Files<CR>
|
||||
:tnoremap <Esc> <C-\><C-n>
|
||||
nnoremap , :lclose<CR> :pclose<CR> :cclose<CR> :noh<CR>
|
||||
|
||||
noremap - ddkP
|
||||
noremap _ ddp
|
||||
nnoremap H ^
|
||||
nnoremap L $
|
||||
|
||||
noremap + :FSAbove<CR>
|
||||
" noremap l+ :FSSplitLeft<CR>
|
||||
" noremap h+ :FSSplitRight<CR>
|
||||
" noremap j+ :FSSplitBelow<CR>
|
||||
" noremap k+ :FSSplitAbove<CR>
|
||||
" Toggle conceal
|
||||
nnoremap <Leader>hc :let &cole=(&cole == 2) ? 0 : 2 <bar> echo 'conceallevel ' . &cole <CR>
|
||||
|
||||
" Delete line into _
|
||||
nnoremap <leader>d "_d
|
||||
vnoremap <leader>d "_d
|
||||
|
||||
" lol
|
||||
nnoremap ; :
|
||||
|
||||
"noremap <C-m> :MundoToggle<CR>
|
||||
"noremap <silent> <ScrollWheelDown> :call comfortable_motion#flick(40)<CR>
|
||||
"noremap <silent> <ScrollWheelUp> :call comfortable_motion#flick(-40)<CR>
|
||||
"nnoremap <Tab> :TagbarToggle<CR>
|
||||
nnoremap <S-Tab> :Vista!!<CR>
|
||||
|
||||
" vim-test
|
||||
nnoremap <Leader>tl :TestLast<CR>
|
||||
nnoremap <Leader>tf :TestFile<CR>
|
||||
nnoremap <Leader>ts :TestSuit<CR>
|
||||
nnoremap <Leader>tn :TestNearest<CR>
|
||||
nnoremap <Leader>tv :TestVisit<CR>
|
||||
|
||||
nnoremap <Leader>af :ALEFix<CR>
|
||||
|
||||
"EasyAlign
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
|
||||
" Tabs
|
||||
nnoremap gn :tabnew<CR>
|
||||
nnoremap gc :tabclose<CR>
|
||||
nnoremap t1 1gt
|
||||
|
|
@ -222,13 +185,249 @@ nnoremap t7 7gt
|
|||
nnoremap t8 8gt
|
||||
nnoremap t9 9gt
|
||||
|
||||
nnoremap <Leader>af :ALEFix<CR>
|
||||
|
||||
"EasyAlign
|
||||
xmap ga <Plug>(EasyAlign)
|
||||
nmap ga <Plug>(EasyAlign)
|
||||
|
||||
" FSwitch
|
||||
|
||||
" noremap + :FSAbove<CR>
|
||||
" noremap l+ :FSSplitLeft<CR>
|
||||
" noremap h+ :FSSplitRight<CR>
|
||||
" noremap j+ :FSSplitBelow<CR>
|
||||
" noremap k+ :FSSplitAbove<CR>
|
||||
"
|
||||
" Snippets
|
||||
let g:UltiSnipsUsePythonVersion = 3
|
||||
let g:UltiSnipsExpandTrigger="<a-q>"
|
||||
let g:UltiSnipsJumpForwardTrigger="<a-q>"
|
||||
let g:UltiSnipsJumpBackwardTrigger=""
|
||||
" }}}
|
||||
|
||||
" Integrations {{{
|
||||
" git
|
||||
autocmd BufWritePost * GitGutter
|
||||
let g:magit_default_fold_level = 0
|
||||
" }}}
|
||||
|
||||
" NERDTree {{{
|
||||
let NERDTreeIgnore = ['\.pyc$', '^__pycache__$']
|
||||
let NERDTreeMinimalUI = 1
|
||||
let NERDTreeDirArrows = 1
|
||||
" }}}
|
||||
|
||||
" Windows management mode {{{
|
||||
" Submode settings
|
||||
let g:submode_always_show_submode = 1
|
||||
let g:submode_timeout = 0
|
||||
|
||||
" Enter and leave the mode
|
||||
call submode#enter_with('Windows', 'n', '', '<Tab>', ':echo "windows mode"<CR>')
|
||||
|
||||
" Switch to left. If the window is left-most, swith to the right-most window
|
||||
" of the previous tab
|
||||
function! SwitchLeft()
|
||||
let l:win = winnr()
|
||||
execute 'wincmd h'
|
||||
if l:win == winnr()
|
||||
normal gT
|
||||
execute winnr('$') . 'wincmd w'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" The same for left
|
||||
function! SwitchRight()
|
||||
let l:win = winnr()
|
||||
execute 'wincmd l'
|
||||
if l:win == winnr()
|
||||
normal gt
|
||||
execute 1 . 'wincmd w'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Switching
|
||||
call submode#map('Windows', 'n', '', 'j', '<C-w>j')
|
||||
call submode#map('Windows', 'n', '', 'k', '<C-w>k')
|
||||
call submode#map('Windows', 'n', '', 'h', ':call SwitchLeft()<CR>')
|
||||
call submode#map('Windows', 'n', '', 'l', ':call SwitchRight()<CR>')
|
||||
|
||||
call submode#map('Windows', 'n', '', '<Down>', '<C-w>j')
|
||||
call submode#map('Windows', 'n', '', '<Up>', '<C-w>k')
|
||||
call submode#map('Windows', 'n', '', '<Left>', ':call SwitchLeft()<CR>')
|
||||
call submode#map('Windows', 'n', '', '<Right>', ':call SwitchRight()<CR>')
|
||||
|
||||
" Closing
|
||||
call submode#map('Windows', 'n', '', 'q', '<C-w>c')
|
||||
call submode#map('Windows', 'n', '', 'Q', ':q!')
|
||||
|
||||
" Moving windows
|
||||
call submode#map('Windows', 'n', '', '<C-j>', '<C-w>J')
|
||||
call submode#map('Windows', 'n', '', '<C-k>', '<C-w>K')
|
||||
call submode#map('Windows', 'n', '', '<C-h>', '<C-w>H')
|
||||
call submode#map('Windows', 'n', '', '<C-l>', '<C-w>L')
|
||||
|
||||
call submode#map('Windows', 'n', '', '<C-Down>', '<C-w>J')
|
||||
call submode#map('Windows', 'n', '', '<C-Up>', '<C-w>K')
|
||||
call submode#map('Windows', 'n', '', '<C-Left>', '<C-w>H')
|
||||
call submode#map('Windows', 'n', '', '<C-Right>', '<C-w>L')
|
||||
|
||||
call submode#map('Windows', 'n', '', 't', '<C-w>T')
|
||||
|
||||
" New splits
|
||||
call submode#map('Windows', 'n', '', 'v', '<C-w>v')
|
||||
call submode#map('Windows', 'n', '', 's', '<C-w>s')
|
||||
|
||||
" }}}
|
||||
|
||||
" Filetype-specific settings {{{
|
||||
|
||||
" web-dev {{{
|
||||
augroup filetype_pug
|
||||
autocmd!
|
||||
autocmd Filetype pug setlocal foldmethod=indent
|
||||
autocmd Filetype pug setlocal foldlevel=20
|
||||
augroup END
|
||||
|
||||
augroup filetype_vue
|
||||
autocmd!
|
||||
autocmd Filetype vue command! -register JsDoc call jsdoc#insert()
|
||||
autocmd Filetype vue setlocal conceallevel=2
|
||||
augroup END
|
||||
|
||||
autocmd Filetype javascript setlocal conceallevel=2
|
||||
|
||||
let g:mta_filetypes = { 'html' : 1, 'xhtml' : 1, 'xml' : 1, 'jinja' : 1, 'xsd': 1, 'vue': 1 }
|
||||
let g:closetag_filenames = '*.html,*.xhtml,*.vue'
|
||||
let g:closetag_filetypes = 'html,xhtml,vue,xml,xsd'
|
||||
let g:colorizer_auto_filetype='css,html,python,javascript,vue'
|
||||
|
||||
let g:jsdoc_allow_input_prompt = 1
|
||||
let g:jsdoc_enable_es6 = 1
|
||||
let g:jsdoc_input_description = 1
|
||||
|
||||
let g:vue_pre_processors = []
|
||||
|
||||
let g:javascript_plugin_jsdoc = 1
|
||||
|
||||
let g:javascript_conceal_function = "ƒ"
|
||||
let g:javascript_conceal_null = "ø"
|
||||
" let g:javascript_conceal_this = "#"
|
||||
let g:javascript_conceal_return = "⮜"
|
||||
let g:javascript_conceal_undefined = "¿"
|
||||
let g:javascript_conceal_NaN = "ℕ"
|
||||
let g:javascript_conceal_prototype = "¶"
|
||||
let g:javascript_conceal_static = "•"
|
||||
let g:javascript_conceal_super = "Ω"
|
||||
let g:javascript_conceal_arrow_function = "⮞"
|
||||
let g:javascript_conceal_noarg_arrow_function = "🞅"
|
||||
let g:javascript_conceal_underscore_arrow_function = "🞅"
|
||||
|
||||
" }}}
|
||||
|
||||
" LaTeX {{{
|
||||
let g:tex_flavor='latex'
|
||||
let g:vimtex_fold_enabled = 1
|
||||
let g:vimtex_view_method='zathura'
|
||||
let g:vimtex_quickfix_mode=0
|
||||
let g:tex_conceal='abdmgs'
|
||||
let g:ale_tex_chktex_options='-I --nowarn 32'
|
||||
"let g:syntastic_tex_lacheck_quiet_messages = { 'regex': ['\Vpossible unwanted space at', '\VUse ` to begin'] }
|
||||
|
||||
augroup filetype_tex
|
||||
autocmd!
|
||||
autocmd Filetype tex setlocal foldlevel=0
|
||||
autocmd Filetype tex
|
||||
\ let b:AutoPairs = {"(": ")", '[': ']', '{': '}', '$': '$', '\left(': '\right)',
|
||||
\ '\left[': 'right]', "''": '``', "``": "''", '"': '"', 'sympy': 'sympy', '<<': '>>'}
|
||||
autocmd Filetype tex setlocal conceallevel=2
|
||||
augroup END
|
||||
|
||||
" }}}
|
||||
|
||||
" Python {{{
|
||||
autocmd Filetype python
|
||||
\ setlocal foldmethod=indent
|
||||
|
||||
"let g:python_host_prog='/usr/bin/python'
|
||||
"let g:python3_host_prog='/usr/bin/python3'
|
||||
let g:pymode_python = 'python3'
|
||||
let g:pymode_lint = 0
|
||||
let g:pymode_rope = 1
|
||||
let g:pymode_rope_completion = 0
|
||||
let g:pymode_rope_autoimport = 0
|
||||
" }}}
|
||||
|
||||
" Misc file commands {{{
|
||||
augroup filetype_vim
|
||||
autocmd!
|
||||
autocmd Filetype vim setlocal foldmethod=marker
|
||||
autocmd Filetype vim setlocal foldlevel=0
|
||||
augroup END
|
||||
|
||||
au BufNewFile,BufRead *.frag,*.vert,*.fp,*.vp,*.glsl setf glsl
|
||||
|
||||
let g:vim_markdown_conceal = 2
|
||||
" }}}
|
||||
|
||||
" }}}
|
||||
|
||||
" Syntax check & autocomplete {{{
|
||||
" Syntastic
|
||||
"set statusline+=%#warningmsg#
|
||||
"set statusline+=%{SyntasticStatuslineFlag()}
|
||||
"set statusline+=%*
|
||||
"
|
||||
"let g:syntastic_ignore_files = ['\.py$', '\.tex$']
|
||||
"let g:syntastic_always_populate_loc_list = 1
|
||||
"let g:syntastic_auto_loc_list = 1
|
||||
"let g:syntastic_check_on_open = 1
|
||||
"let g:syntastic_check_on_wq = 0
|
||||
|
||||
" ALE
|
||||
let g:ale_open_list = 'on_save'
|
||||
let g:ale_list_window_size = 7
|
||||
let g:ale_close_preview_on_insert = 1
|
||||
let g:ale_lint_on_text_changed = 'never'
|
||||
let g:ale_lint_on_enter = 0
|
||||
let g:ale_completion_enabled = 0
|
||||
let g:ale_linters = {'python': ['pyls'], 'tex': ['chktex'], 'cpp': ['clang'], 'vue': ['eslint']}
|
||||
let g:ale_fixers = {
|
||||
\ 'python': ['yapf', 'isort', 'remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'tex': ['latexindent', 'textlint', 'remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'js': ['prettier', 'eslint'],
|
||||
\ 'javascript': ['prettier', 'eslint'],
|
||||
\ 'jsx': ['prettier', 'eslint'],
|
||||
\ 'vue': ['prettier', 'eslint'],
|
||||
\ 'cpp': ['clang-format', 'remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'json': ['prettier']
|
||||
\}
|
||||
let g:airline#extensions#ale#enabled = 1
|
||||
|
||||
" Deoplete
|
||||
call deoplete#custom#var('omni', 'input_patterns', {
|
||||
\ 'tex': g:vimtex#re#deoplete
|
||||
\})
|
||||
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
call deoplete#custom#source('ale', 'rank', 999)
|
||||
|
||||
inoremap <silent><expr> <TAB>
|
||||
\ pumvisible() ? "\<C-n>" :
|
||||
\ <SID>check_back_space() ? "\<TAB>" :
|
||||
\ deoplete#mappings#manual_complete()
|
||||
function! s:check_back_space() abort
|
||||
let col = col('.') - 1
|
||||
return !col || getline('.')[col - 1] =~ '\s'
|
||||
endfunction
|
||||
|
||||
let g:deoplete#sources#clang#libclang_path = '/usr/lib/llvm-6.0/lib/libclang.so.1'
|
||||
let g:deoplete#sources#clang#clang_header = '/usr/lib/llvm-6.0/lib/clang/6.0.0/include'
|
||||
|
||||
" }}}
|
||||
|
||||
" My scripts {{{
|
||||
" Subterminal {{{
|
||||
|
||||
function! GetSubTerminalName()
|
||||
|
|
@ -268,6 +467,16 @@ nnoremap ` :call SubTerminal()<CR>
|
|||
|
||||
" }}}
|
||||
|
||||
" Terminal in tab {{{
|
||||
function! OpenTerminalInTab()
|
||||
execute ':tabnew'
|
||||
execute ':terminal'
|
||||
normal i
|
||||
endfunction
|
||||
|
||||
nnoremap ~ :call OpenTerminalInTab()<CR>
|
||||
" }}}
|
||||
|
||||
" Diff with saved {{{
|
||||
function! s:DiffWithSaved()
|
||||
let filetype=&ft
|
||||
|
|
@ -280,16 +489,6 @@ endfunction
|
|||
com! DiffSaved call s:DiffWithSaved()
|
||||
" }}}
|
||||
|
||||
" Terminal in tab {{{
|
||||
function! OpenTerminalInTab()
|
||||
execute ':tabnew'
|
||||
execute ':terminal'
|
||||
normal i
|
||||
endfunction
|
||||
|
||||
nnoremap ~ :call OpenTerminalInTab()<CR>
|
||||
" }}}
|
||||
|
||||
" Git diff stats {{{
|
||||
function! Gstats()
|
||||
execute '!git diff --stat'
|
||||
|
|
@ -342,6 +541,24 @@ command! Uptime echo Uptime(1)
|
|||
|
||||
" }}}
|
||||
|
||||
" {{{ Delete Hidden buffers
|
||||
function! DeleteHiddenBuffers()
|
||||
let tpbl=[]
|
||||
let closed = 0
|
||||
call map(range(1, tabpagenr('$')), 'extend(tpbl, tabpagebuflist(v:val))')
|
||||
for buf in filter(range(1, bufnr('$')), 'bufexists(v:val) && index(tpbl, v:val)==-1')
|
||||
if getbufvar(buf, '&mod') == 0
|
||||
silent execute 'bwipeout' buf
|
||||
let closed += 1
|
||||
endif
|
||||
endfor
|
||||
echo "Closed ".closed." hidden buffers"
|
||||
endfunction
|
||||
|
||||
command! DeleteHiddenBuffers call DeleteHiddenBuffers()
|
||||
|
||||
" }}}
|
||||
|
||||
" {{{ Fugitive conflict resolution
|
||||
|
||||
function! GitVMergeSplit()
|
||||
|
|
@ -371,157 +588,19 @@ nnoremap gd<Left> :call GitMergeGetLeft()<CR>
|
|||
nnoremap gd<Right> :call GitMergeGetRight()<CR>
|
||||
|
||||
" }}}
|
||||
|
||||
" {{{ Delete Hidden buffers
|
||||
function! DeleteHiddenBuffers()
|
||||
let tpbl=[]
|
||||
let closed = 0
|
||||
call map(range(1, tabpagenr('$')), 'extend(tpbl, tabpagebuflist(v:val))')
|
||||
for buf in filter(range(1, bufnr('$')), 'bufexists(v:val) && index(tpbl, v:val)==-1')
|
||||
if getbufvar(buf, '&mod') == 0
|
||||
silent execute 'bwipeout' buf
|
||||
let closed += 1
|
||||
endif
|
||||
endfor
|
||||
echo "Closed ".closed." hidden buffers"
|
||||
endfunction
|
||||
|
||||
command! DeleteHiddenBuffers call DeleteHiddenBuffers()
|
||||
|
||||
" }}}
|
||||
|
||||
"Indent & folding stuff {{{
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set smarttab
|
||||
set expandtab
|
||||
set smartindent
|
||||
set autoindent
|
||||
|
||||
set foldmethod=syntax
|
||||
set foldlevelstart=20
|
||||
|
||||
" Filetypes {{{
|
||||
|
||||
augroup filetype_pug
|
||||
autocmd!
|
||||
autocmd Filetype pug setlocal foldmethod=indent
|
||||
autocmd Filetype pug setlocal foldlevel=20
|
||||
augroup END
|
||||
|
||||
augroup filetype_vue
|
||||
autocmd!
|
||||
autocmd Filetype vue command! -register JsDoc call jsdoc#insert()
|
||||
augroup END
|
||||
|
||||
au Filetype python
|
||||
\ setlocal foldmethod=indent
|
||||
|
||||
au Filetype tex
|
||||
\ setlocal foldlevel=0
|
||||
|
||||
augroup filetype_tex
|
||||
autocmd!
|
||||
autocmd Filetype tex
|
||||
\ let b:AutoPairs = {"(": ")", '[': ']', '{': '}', '$': '$', '\left(': '\right)',
|
||||
\ '\left[': 'right]', "''": '``', "``": "''", '"': '"', 'sympy': 'sympy', '<<': '>>'}
|
||||
augroup END
|
||||
|
||||
autocmd Filetype vim setlocal foldmethod=marker
|
||||
" }}}
|
||||
|
||||
let g:indent_guides_enable_on_vim_startup = 1
|
||||
let g:indent_guides_exclude_filetypes = ['help', 'nerdtree', 'tagbar', 'startify']
|
||||
let g:indent_guides_guide_size = 1
|
||||
|
||||
" }}}
|
||||
|
||||
"Syntax check {{{
|
||||
syntax on
|
||||
"set statusline+=%#warningmsg#
|
||||
"set statusline+=%{SyntasticStatuslineFlag()}
|
||||
"set statusline+=%*
|
||||
"
|
||||
"let g:syntastic_ignore_files = ['\.py$', '\.tex$']
|
||||
"let g:syntastic_always_populate_loc_list = 1
|
||||
"let g:syntastic_auto_loc_list = 1
|
||||
"let g:syntastic_check_on_open = 1
|
||||
"let g:syntastic_check_on_wq = 0
|
||||
|
||||
let g:ale_open_list = 'on_save'
|
||||
let g:ale_list_window_size = 7
|
||||
let g:ale_close_preview_on_insert = 1
|
||||
let g:ale_lint_on_text_changed = 'never'
|
||||
let g:ale_lint_on_enter = 0
|
||||
let g:ale_completion_enabled = 0
|
||||
let g:ale_linters = {'python': ['pyls'], 'tex': ['chktex'], 'cpp': ['clang'], 'vue': ['eslint']}
|
||||
let g:ale_fixers = {
|
||||
\ 'python': ['yapf', 'isort', 'remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'tex': ['latexindent', 'textlint', 'remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'js': ['prettier', 'eslint'],
|
||||
\ 'javascript': ['prettier', 'eslint'],
|
||||
\ 'jsx': ['prettier', 'eslint'],
|
||||
\ 'vue': ['prettier', 'eslint'],
|
||||
\ 'cpp': ['clang-format', 'remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'json': ['prettier']
|
||||
\}
|
||||
let g:airline#extensions#ale#enabled = 1
|
||||
|
||||
" }}}
|
||||
|
||||
autocmd QuitPre * if empty(&bt) | lclose | endif
|
||||
|
||||
" Deoplete {{{
|
||||
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
call deoplete#custom#source('ale', 'rank', 999)
|
||||
|
||||
inoremap <silent><expr> <TAB>
|
||||
\ pumvisible() ? "\<C-n>" :
|
||||
\ <SID>check_back_space() ? "\<TAB>" :
|
||||
\ deoplete#mappings#manual_complete()
|
||||
function! s:check_back_space() abort
|
||||
let col = col('.') - 1
|
||||
return !col || getline('.')[col - 1] =~ '\s'
|
||||
endfunction
|
||||
|
||||
" B
|
||||
" }}}
|
||||
"spell
|
||||
"set spell spelllang=en,ru
|
||||
|
||||
" Fix for NERDTree devicons integration {{{
|
||||
function! SetNERDTreeSyntax()
|
||||
if g:webdevicons_enable_nerdtree == 1 && g:webdevicons_conceal_nerdtree_brackets == 1
|
||||
augroup webdevicons_conceal_nerdtree_brackets
|
||||
au!
|
||||
autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\]" contained conceal containedin=ALL
|
||||
autocmd FileType nerdtree syntax match hideBracketsInNerdTree "\[" contained conceal containedin=ALL
|
||||
autocmd FileType nerdtree setlocal conceallevel=3
|
||||
autocmd FileType nerdtree setlocal concealcursor=nvic
|
||||
augroup END
|
||||
endif
|
||||
endfunction
|
||||
|
||||
if exists('g:loaded_webdevicons')
|
||||
call SetNERDTreeSyntax()
|
||||
endif
|
||||
|
||||
autocmd VimEnter * source $MYVIMRC
|
||||
|
||||
" }}}
|
||||
|
||||
" ui {{{
|
||||
" UI settings {{{
|
||||
set background=dark
|
||||
let g:solarized_visibility='high'
|
||||
"let g:solarized_visibility='high'
|
||||
set termguicolors
|
||||
"set guifont=DroidSansMono\ Nerd\ Font\ 11
|
||||
set laststatus=2
|
||||
colorscheme palenight
|
||||
|
||||
" git
|
||||
autocmd BufWritePost * GitGutter
|
||||
let g:magit_default_fold_level = 0
|
||||
highlight! TermCursorNC guibg=red
|
||||
"highlight Conceal guibg=Normal guifg=Normal
|
||||
highlight! link Conceal Normal
|
||||
|
||||
" Airline
|
||||
let g:airline_theme='palenight'
|
||||
|
|
@ -530,10 +609,19 @@ let g:airline#extensions#tabline#enabled = 1
|
|||
let g:airline#extensions#tabline#formatter = 'unique_tail'
|
||||
let g:airline_section_b = '%{Uptime()}'
|
||||
|
||||
highlight! TermCursorNC guibg=red
|
||||
" Indent guides
|
||||
let g:indent_guides_enable_on_vim_startup = 1
|
||||
let g:indent_guides_exclude_filetypes = ['help', 'nerdtree', 'tagbar', 'startify']
|
||||
let g:indent_guides_guide_size = 1
|
||||
|
||||
" Brackets
|
||||
let g:rainbow_active = 1
|
||||
let g:rainbow_conf = {
|
||||
\ 'guifgs': ['red', 'yellow', 'lightgreen', 'lightblue'],
|
||||
\ 'separately': { 'nerdtree': 0 }
|
||||
\ }
|
||||
|
||||
let g:colorizer_auto_filetype='css,html,python,js'
|
||||
" Tagbar
|
||||
let g:tagbar_sort = 0
|
||||
let g:tagbar_show_line_numbers = 1
|
||||
let g:tagbar_width = 60
|
||||
|
|
@ -541,16 +629,6 @@ let g:tagbar_autofocus = 1
|
|||
|
||||
let g:vista_sidebar_width = 60
|
||||
|
||||
" Brackets
|
||||
let g:rainbow_active = 1
|
||||
let g:rainbow_conf = {
|
||||
\ 'guifgs': ['red', 'yellow', 'lightgreen', 'lightblue'],
|
||||
\ }
|
||||
hi Conceal guibg=Normal guifg=Normal
|
||||
let g:closetag_filenames = '*.html,*.xhtml,*.vue'
|
||||
let g:closetag_filetypes = 'html,xhtml,vue,xml,xsd'
|
||||
let g:mta_filetypes = { 'html' : 1, 'xhtml' : 1, 'xml' : 1, 'jinja' : 1, 'xsd': 1, 'vue': 1 }
|
||||
|
||||
let g:startify_custom_header = [
|
||||
\ ' ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――',
|
||||
\ ' _____ __ __ ____ ____ ',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue