update
This commit is contained in:
parent
66b05e29fe
commit
e984e9308d
7 changed files with 29 additions and 935 deletions
295
vimrc
295
vimrc
|
|
@ -15,7 +15,7 @@ if has('nvim')
|
|||
"}}}
|
||||
|
||||
call plug#begin('~/.vim/bundle')
|
||||
source ~/.config/vim/config/plugins.nvim.vim
|
||||
source ~/.config/nvim/init.plugins.vim
|
||||
"
|
||||
else
|
||||
if empty(glob('~/.vim/autoload/plug.vim'))"{{{
|
||||
|
|
@ -26,10 +26,10 @@ else
|
|||
"}}}
|
||||
|
||||
call plug#begin('~/.config/nvim/bundle')
|
||||
source ~/.config/vim/config/plugins.vim
|
||||
source ~/.config/vim/vimrc.plugins.vim
|
||||
endif
|
||||
|
||||
source ~/.config/vim/config/plugins.shared.vim
|
||||
source ~/.config/vim/vimrc.plugins.shared
|
||||
call plug#end()
|
||||
|
||||
runtime macros/matchit.vim
|
||||
|
|
@ -38,98 +38,6 @@ runtime macros/matchit.vim
|
|||
"----------------------------------------------------------------------------}}}
|
||||
" #functions {{{
|
||||
|
||||
function! SetColor(name, fg, bg, fg_l, bg_l, style) abort"{{{
|
||||
|
||||
if &background ==? 'dark'
|
||||
if a:fg ==? 'normal'
|
||||
let l:guifg = ' guifg=' . g:d_normal_fg
|
||||
let l:ctermfg = 'ctermfg=black'
|
||||
" let l:termfg = 'termfg=black'
|
||||
elseif a:fg ==? 'none'
|
||||
let l:guifg = ' guifg=' . g:d_normal_bg
|
||||
let l:ctermfg = ' ctermfg=white'
|
||||
" let l:termfg = ' termfg=white'
|
||||
elseif a:fg ==? ''
|
||||
let l:guifg = ''
|
||||
let l:ctermfg = ''
|
||||
" let l:termfg = ''
|
||||
else
|
||||
let l:guifg = ' guifg=' . a:fg
|
||||
let l:ctermfg = ' ctermfg=black'
|
||||
" let l:termfg = ' termfg=black'
|
||||
endif
|
||||
|
||||
if a:bg ==? 'none'
|
||||
let l:guibg = ' guibg=NONE'
|
||||
let l:ctermbg = ' ctermbg=none'
|
||||
" let l:termbg = ' termbg=none'
|
||||
elseif a:bg ==? ''
|
||||
let l:guibg = ''
|
||||
let l:ctermbg = ''
|
||||
" let l:termbg = ''
|
||||
else
|
||||
let l:guibg = ' guibg=' . a:bg
|
||||
let l:ctermbg = ' ctermbg=black'
|
||||
endif
|
||||
else " light background
|
||||
if a:fg_l ==? 'normal'
|
||||
let l:guifg = ' guifg=' . g:l_normal_fg
|
||||
let l:ctermfg = ' ctermfg=black'
|
||||
" let l:termfg = ' termfg=black'
|
||||
elseif a:fg_l ==? 'none'
|
||||
let l:guifg = ' guifg=' . g:l_normal_bg
|
||||
let l:ctermfg = ' ctermfg=white'
|
||||
" let l:termfg = ' termfg=white'
|
||||
elseif a:fg_l ==? ''
|
||||
let l:guifg = ''
|
||||
let l:ctermfg = ''
|
||||
let l:termfg = ''
|
||||
else
|
||||
let l:guifg = ' guifg=' . a:fg_l
|
||||
let l:ctermfg = ' ctermfg=black'
|
||||
" let l:termfg = ' termfg=black'
|
||||
endif
|
||||
|
||||
if a:bg_l ==? 'none'
|
||||
let l:guibg = ' guibg=NONE'
|
||||
let l:ctermbg = ' ctermbg=none'
|
||||
" let l:termbg = ' termbg=none'
|
||||
elseif a:bg_l ==? ''
|
||||
let l:guibg = ''
|
||||
let l:ctermbg = ''
|
||||
" let l:termbg = ''
|
||||
else
|
||||
let l:guibg = ' guibg=' . a:bg_l
|
||||
let l:ctermbg = ' ctermbg=white'
|
||||
" let l:termbg = ' termbg=white'
|
||||
endif
|
||||
endif
|
||||
|
||||
if a:style ==? ''
|
||||
let l:style = ' term=none cterm=none gui=NONE'
|
||||
else
|
||||
let l:style = ' term=' . a:style . ' cterm=' . a:style . ' gui=' . a:style
|
||||
endif
|
||||
|
||||
let l:histring = 'hi! ' . a:name . l:guifg . l:guibg . l:style
|
||||
let l:histring .= l:ctermfg . l:ctermbg
|
||||
" let l:histring .= l:termfg . l:termbg
|
||||
|
||||
execute 'hi clear ' . a:name
|
||||
execute l:histring
|
||||
|
||||
endfunction
|
||||
|
||||
"}}}
|
||||
function! GetStatusFrag(condition, colorname, conditionprefix, text) abort "{{{
|
||||
" TODO better name
|
||||
let l:frag='%#' . a:colorname . '#'
|
||||
let l:frag.=a:conditionprefix
|
||||
let l:frag.='%{(' . a:condition . ")?'" . a:text . "':''}"
|
||||
return l:frag
|
||||
endfunction
|
||||
|
||||
"}}}
|
||||
function! MyFoldText() "{{{
|
||||
if !exists('g:foldtext_column')
|
||||
let g:foldtext_column = 80 " column to right align foldtext with
|
||||
|
|
@ -173,38 +81,6 @@ function! MyFoldText() "{{{
|
|||
return l:foldtext
|
||||
endfunction
|
||||
|
||||
"}}}
|
||||
function! IndentFoldTextColumn(amount) abort "{{{
|
||||
if !exists('g:foldtext_column')
|
||||
" column to right align foldtext with
|
||||
let g:foldtext_column = 80
|
||||
endif
|
||||
|
||||
if !exists('b:foldtext_column')
|
||||
" column to right align foldtext with
|
||||
let b:foldtext_column = g:foldtext_column
|
||||
endif
|
||||
|
||||
if a:amount == 0
|
||||
let b:foldtext_column = g:foldtext_column
|
||||
return
|
||||
endif
|
||||
|
||||
let l:newcolumn = b:foldtext_column + a:amount
|
||||
if l:newcolumn < 20
|
||||
let l:newcolumn = 20
|
||||
elseif l:newcolumn > g:foldtext_maxcolumn
|
||||
let l:newcolumn = g:foldtext_maxcolumn
|
||||
endif
|
||||
|
||||
let b:foldtext_column = l:newcolumn
|
||||
|
||||
endfunction
|
||||
|
||||
nnoremap <space>z, :<C-U>call IndentFoldTextColumn(-5 * (v:count == 0 ? 1 : v:count))<CR>
|
||||
nnoremap <space>z. :<C-U>call IndentFoldTextColumn(5 * (v:count == 0 ? 1 : v:count))<CR>
|
||||
nnoremap <space>z= :call IndentFoldTextColumn(0)<CR>
|
||||
|
||||
"}}}
|
||||
function! <SID>SynStack()"{{{
|
||||
if !exists('*synstack')
|
||||
|
|
@ -214,82 +90,7 @@ function! <SID>SynStack()"{{{
|
|||
endfunc
|
||||
nmap <space>pp :call <SID>SynStack()<CR>
|
||||
"}}}
|
||||
function! s:Get_env() abort "{{{
|
||||
" devdocs DD
|
||||
" https://gist.github.com/romainl/8d3b73428b4366f75a19be2dad2f0987#file-devdocs-vim
|
||||
if has('win64') || has('win32') || has('win16')
|
||||
return 'WINDOWS'
|
||||
else
|
||||
return toupper(substitute(system('uname'), '\n', '', ''))
|
||||
endif
|
||||
endfunction
|
||||
" What command to use on what system
|
||||
let s:cmds = {'DARWIN': 'open', 'LINUX': 'qutebrowser', 'WINDOWS': 'start'}
|
||||
|
||||
" Build the URL stub
|
||||
let s:stub = s:cmds[<SID>Get_env()] . " 'http://devdocs.io/?q="
|
||||
|
||||
command! -nargs=* DD silent! call system(len(split(<q-args>, ' ')) == 0 ?
|
||||
\ s:stub . &ft . ' ' . expand('<cword>') . "'" : len(split(<q-args>, ' ')) == 1 ?
|
||||
\ s:stub . &ft . ' ' . <q-args> . "'" : s:stub . <q-args> . "'")
|
||||
|
||||
"}}}
|
||||
|
||||
if has('nvim')
|
||||
if !exists('*RangerExplorer') "{{{
|
||||
function RangerExplorer() abort
|
||||
exec 'silent Ranger'
|
||||
endfun
|
||||
nnoremap <space>ra :call RangerExplorer()<CR>
|
||||
endif
|
||||
else
|
||||
if !exists('*RangerExplorer')
|
||||
function RangerExplorer() abort
|
||||
exec 'silent !ranger --choosefile=/tmp/vim_ranger_current_file ' . expand('%:p:h')
|
||||
if filereadable('/tmp/vim_ranger_current_file')
|
||||
exec 'edit ' . system('cat /tmp/vim_ranger_current_file')
|
||||
call system('rm /tmp/vim_ranger_current_file')
|
||||
endif
|
||||
redraw!
|
||||
endfun
|
||||
nnoremap <space>ra :call RangerExplorer()<CR>
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
"}}}
|
||||
function! WinEnterColorColumn() abort"{{{
|
||||
if &buftype != ''
|
||||
setlocal colorcolumn=0
|
||||
elseif exists('b:colorcolumn_restore')
|
||||
execute 'setlocal colorcolumn=' . b:colorcolumn_restore
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"}}}
|
||||
function! WinLeaveColorColumn() abort"{{{
|
||||
let b:colorcolumn_restore = &colorcolumn
|
||||
setlocal colorcolumn=0
|
||||
endfunction
|
||||
|
||||
"}}}
|
||||
function! GetLinterStatus(key) abort "{{{
|
||||
|
||||
let l:statuscount = 0
|
||||
|
||||
if exists('b:ale_linted')
|
||||
let l:linter = ale#statusline#Count(bufnr(''))
|
||||
else
|
||||
let l:linter = GetDiagnosticCountsFromSigns(bufnr(''))
|
||||
endif
|
||||
|
||||
if has_key(l:linter, a:key)
|
||||
let l:statuscount = l:linter[a:key]
|
||||
endif
|
||||
return l:statuscount
|
||||
endfunction
|
||||
|
||||
"}}}
|
||||
function! s:RunShellCommand(cmdline) abort"{{{
|
||||
" Shell command
|
||||
" http://vim.wikia.com/wiki/VimTip1599
|
||||
|
|
@ -346,38 +147,6 @@ endfunction
|
|||
command! -complete=shellcmd -nargs=+ Shell call s:RunShellCommand(<q-args>)
|
||||
let g:shell_scratch_buffer_nr = -1
|
||||
|
||||
"}}}
|
||||
function! GetDiagnosticCountsFromSigns(buffer) abort "{{{
|
||||
let l:error = 0
|
||||
let l:warn = 0
|
||||
let l:info = 0
|
||||
let l:hint = 0
|
||||
|
||||
redir => l:result
|
||||
silent exec 'sign place buffer=' . a:buffer
|
||||
redir end
|
||||
|
||||
let l:lines = split(l:result, '\n')
|
||||
|
||||
for l:line in l:lines
|
||||
if l:line =~? 'Error'
|
||||
let l:error += 1
|
||||
endif
|
||||
if l:line =~? 'Warning'
|
||||
let l:warn += 1
|
||||
endif
|
||||
if l:line =~? 'Info'
|
||||
let l:info += 1
|
||||
endif
|
||||
if l:line =~? 'Hint'
|
||||
let l:hint += 1
|
||||
endif
|
||||
endfor
|
||||
|
||||
return {'error': l:error, 'warning': l:warn, 'info': l:info, 'hint': l:hint}
|
||||
|
||||
endfunction
|
||||
|
||||
"}}}
|
||||
function! SaveAndExecute(ex_command) abort "{{{
|
||||
" https://stackoverflow.com/a/40195855
|
||||
|
|
@ -408,8 +177,8 @@ function! SaveAndExecute(ex_command) abort "{{{
|
|||
setlocal nobuflisted
|
||||
setlocal winfixheight
|
||||
setlocal cursorline " make it easy to distinguish
|
||||
setlocal nonumber
|
||||
setlocal norelativenumber
|
||||
" setlocal nonumber
|
||||
" setlocal norelativenumber
|
||||
setlocal showbreak=""
|
||||
|
||||
nnoremap <silent> <buffer> q :bdelete!<CR>'.zz
|
||||
|
|
@ -467,7 +236,7 @@ command! -nargs=1 -complete=command Redir silent call Redir(<q-args>)
|
|||
"}}}
|
||||
function! OpenNetrw() abort "{{{
|
||||
Texplore
|
||||
setl rnu nu
|
||||
" setl rnu nu
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
|
|
@ -485,8 +254,6 @@ function! CloseNetrw(keep_buffer) abort "{{{
|
|||
endif
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
"}}} end #functions
|
||||
"----------------------------------------------------------------------------}}}
|
||||
"#commands{{{
|
||||
" TrimWhitespace{{{
|
||||
|
|
@ -545,10 +312,8 @@ endif
|
|||
|
||||
set hidden
|
||||
|
||||
set number relativenumber
|
||||
set hlsearch
|
||||
|
||||
" set completeopt=menuone,preview
|
||||
set completeopt=menuone
|
||||
|
||||
set nospell
|
||||
|
|
@ -610,7 +375,7 @@ nnoremap <cr>l :colorscheme monotonous-light<cr>
|
|||
nnoremap <cr>d :colorscheme monotonous-dark<cr>
|
||||
nnoremap 0 ^
|
||||
nnoremap <silent><space>cs :let @/=""<cr>
|
||||
nnoremap : :setlocal norelativenumber<CR>:
|
||||
nnoremap <space>: :setlocal number<CR>:
|
||||
nnoremap <silent> <space>rc :so $MYVIMRC<CR>
|
||||
nnoremap <silent><expr> <space>nh (&hls && v:hlsearch ? ':nohls' : ':set hls')."\n"
|
||||
nnoremap <silent> <space>sl :set invlist<CR>
|
||||
|
|
@ -631,7 +396,8 @@ nnoremap <silent> <space>ry diw"0P
|
|||
" quick grep of visual selection
|
||||
vnoremap <space>gr y:grep! -R <C-r>" .
|
||||
" open quickfix window of TODOs
|
||||
nnoremap <space>td :grep! -R 'TODO' .<CR>:botright cwindow<CR>:echo len(getqflist()) 'TODOs'<CR>
|
||||
" FIXME i want fixme!!!
|
||||
nnoremap <space>td :grep -RE '(TODO\\|FIXME)' .<CR>:botright cwindow<CR>:echo len(getqflist()) 'TODOs'<CR>
|
||||
" devdocs mapping
|
||||
nnoremap <space>dd :DD<CR>
|
||||
" write and delete current buffer
|
||||
|
|
@ -740,9 +506,7 @@ iabbrev ct'' content-type: '';
|
|||
" persistent folds {{{
|
||||
augroup AutoSaveFolds
|
||||
autocmd!
|
||||
" autocmd BufWinLeave ?* mkview
|
||||
autocmd BufWrite ?* mkview
|
||||
" autocmd BufWinEnter ?* silent loadview
|
||||
autocmd BufRead ?* silent! loadview
|
||||
augroup END
|
||||
|
||||
|
|
@ -763,28 +527,13 @@ iabbrev ct'' content-type: '';
|
|||
|
||||
" }}}
|
||||
" line numbering {{{
|
||||
augroup linenumbering
|
||||
autocmd!
|
||||
autocmd InsertEnter * :set norelativenumber
|
||||
autocmd InsertLeave * :set number relativenumber
|
||||
autocmd WinEnter * :set number relativenumber
|
||||
autocmd WinLeave * set norelativenumber
|
||||
if exists('##CmdlineEnter')
|
||||
autocmd CmdlineEnter * :redraw | :set norelativenumber
|
||||
autocmd CmdlineLeave * :set number relativenumber
|
||||
augroup linenumbering
|
||||
autocmd!
|
||||
autocmd CmdlineEnter * :redraw | :set number
|
||||
autocmd CmdlineLeave * :set nonumber
|
||||
augroup END
|
||||
endif
|
||||
augroup END
|
||||
|
||||
" }}}
|
||||
" auto_window_settings {{{
|
||||
augroup auto_window_settings
|
||||
autocmd!
|
||||
autocmd WinEnter * call WinEnterColorColumn()
|
||||
autocmd WinEnter * set cursorline | set cursorcolumn
|
||||
" autocmd WinLeave * setlocal colorcolumn=0
|
||||
autocmd WinLeave * call WinLeaveColorColumn()
|
||||
autocmd WinLeave * set nocursorline | set nocursorcolumn
|
||||
augroup END
|
||||
|
||||
" }}}
|
||||
" Automatically reload .vimrc if changed {{{
|
||||
|
|
@ -793,13 +542,6 @@ iabbrev ct'' content-type: '';
|
|||
autocmd BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
|
||||
augroup END
|
||||
|
||||
" }}}
|
||||
" Open qfix after grepping {{{
|
||||
" augroup qfixopen
|
||||
" autocmd!
|
||||
" autocmd QuickFixCmdPost *grep* botright cwindow
|
||||
" augroup END
|
||||
|
||||
" }}}
|
||||
" Open quickfix window{{{
|
||||
augroup QuickFixAutoload
|
||||
|
|
@ -814,7 +556,8 @@ iabbrev ct'' content-type: '';
|
|||
" #statusline {{{
|
||||
set statusline=\
|
||||
set statusline+=[%n]\ \
|
||||
set statusline+=%p\ of\ %L
|
||||
set statusline+=%l\ of\ %L\
|
||||
set statusline+=(%p%%)
|
||||
set statusline+=%=
|
||||
set statusline+=%y\
|
||||
set statusline+=%r\ %m\ %F
|
||||
|
|
@ -822,11 +565,7 @@ iabbrev ct'' content-type: '';
|
|||
|
||||
"----------------------------------------------------------------------------}}}
|
||||
runtime vimrc-overrides
|
||||
"}}}
|
||||
|
||||
if has('nvim')
|
||||
" TODO - try 'coc-tsserver'
|
||||
call coc#add_extension( 'coc-vetur', 'coc-python', 'coc-phpls', 'coc-json', 'coc-css', 'coc-prettier', 'coc-eslint', 'coc-vimlsp')
|
||||
endif
|
||||
|
||||
|
||||
" vim: set foldmethod=marker:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue