file structure
This commit is contained in:
parent
fb5beeb4ca
commit
50bdbcd016
400
vimrc
400
vimrc
|
@ -1,86 +1,13 @@
|
|||
filetype off " required
|
||||
set ttyfast
|
||||
|
||||
" #plugins{{{
|
||||
set runtimepath+=~/.vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
source vimrc.plugins.vim
|
||||
source vimrc.functions.vim
|
||||
|
||||
Plugin 'VundleVim/Vundle.vim'
|
||||
"css3-syntax
|
||||
Plugin 'hail2u/vim-css3-syntax.git'
|
||||
"scss-syntax
|
||||
Plugin 'cakebaker/scss-syntax.vim'
|
||||
"bufexplorer
|
||||
Plugin 'jlanzarotta/bufexplorer'
|
||||
"tagbar
|
||||
Plugin 'majutsushi/tagbar'
|
||||
"vim-surround
|
||||
Plugin 'tpope/vim-surround'
|
||||
"undotree
|
||||
Plugin 'mbbill/undotree'
|
||||
" Ctrlp
|
||||
Plugin 'ctrlpvim/ctrlp.vim'
|
||||
" Obsession
|
||||
Plugin 'tpope/vim-obsession'
|
||||
" vim-css-color
|
||||
Plugin 'ap/vim-css-color'
|
||||
" vim-javascript
|
||||
Plugin 'pangloss/vim-javascript'
|
||||
" ultisnips
|
||||
" https://github.com/sirver/UltiSnips
|
||||
Plugin 'SirVer/ultisnips'
|
||||
" and some snippets
|
||||
" https://github.com/honza/vim-snippets
|
||||
Plugin 'honza/vim-snippets'
|
||||
" ALE
|
||||
" https://github.com/w0rp/ale
|
||||
Plugin 'w0rp/ale'
|
||||
" MatchTag
|
||||
" https://github.com/gregsexton/MatchTag
|
||||
Plugin 'gregsexton/MatchTag'
|
||||
" phpcomplete.vim
|
||||
" https://github.com/shawncplus/phpcomplete.vim
|
||||
Plugin 'shawncplus/phpcomplete.vim'
|
||||
" https://github.com/dsawardekar/wordpress.vim
|
||||
" For up to date Wordpress Files see:
|
||||
" https://github.com/joseluis/wordpress.vim-generator
|
||||
"Plugin 'dsawardekar/wordpress.vim'
|
||||
" disabled - doesn't support universal ctags?
|
||||
" vim-vue
|
||||
" https://github.com/posva/vim-vue
|
||||
Plugin 'posva/vim-vue'
|
||||
" vim-commentary
|
||||
" https://github.com/tpope/vim-commentary
|
||||
Plugin 'tpope/vim-commentary'
|
||||
" vim-repeat
|
||||
" https://github.com/tpope/vim-repeat
|
||||
Plugin 'tpope/vim-repeat'
|
||||
" taboo.vim
|
||||
" https://github.com/gcmt/taboo.vim
|
||||
Plugin 'gcmt/taboo.vim'
|
||||
" https://github.com/mattn/emmet-vim
|
||||
Plugin 'mattn/emmet-vim'
|
||||
" vimwiki
|
||||
" https://github.com/vimwiki/vimwiki
|
||||
Plugin 'vimwiki/vimwiki'
|
||||
" youcompleteme
|
||||
" https://github.com/Valloric/YouCompleteMe
|
||||
Plugin 'Valloric/YouCompleteMe'
|
||||
" gitgutter
|
||||
" https://github.com/airblade/vim-gitgutter/blob/master/README.mkd
|
||||
Plugin 'airblade/vim-gitgutter'
|
||||
" vim-peekaboo
|
||||
" https://github.com/junegunn/vim-peekaboo
|
||||
Plugin 'junegunn/vim-peekaboo'
|
||||
" vim-gutentags
|
||||
" https://github.com/ludovicchabant/vim-gutentags
|
||||
Plugin 'ludovicchabant/vim-gutentags'
|
||||
for f in split(glob('vimrc.d/*.vim'), '\n')
|
||||
exe 'source' f
|
||||
endfor
|
||||
|
||||
" All of your Plugins must be added before the following line
|
||||
call vundle#end() " required
|
||||
filetype plugin indent on " required
|
||||
|
||||
"}}}
|
||||
|
||||
" #settings{{{
|
||||
" set t_Sf=<Esc>[3%p1%dm " foreground colour
|
||||
|
@ -249,183 +176,6 @@ iabbrev waht what
|
|||
iabbrev tehn then
|
||||
"}}}
|
||||
|
||||
|
||||
" #statusline format
|
||||
" isactive = 0 when inactive, 1 otherwise
|
||||
|
||||
" get status line{{{
|
||||
function! GetStatus(isactive)
|
||||
" let l:linter = ale#statusline#Count(bufnr(''))
|
||||
let l:divider = '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >'
|
||||
let l:separator = '%#StatusLineSeparator# '
|
||||
let l:normal = '%#StatusLineNormal#'
|
||||
let l:active = '%#StatusLineActive#'
|
||||
let l:bracket_open = '%#CRNoiseDark#('
|
||||
let l:bracket_close = '%#CRNoiseDark#) '
|
||||
let l:statusline = ''
|
||||
" let l:statusline = '%#CRNoise#b%#CRNoiseDark#:%#CRNoiseBright#%n '
|
||||
|
||||
" let l:curbuf = bufnr('')
|
||||
" let l:statusline .= '%#CRNormal#' . l:curbuf . ': ' . &buftype . ' '
|
||||
|
||||
" file percentage
|
||||
let l:statusline.='%#FoldColumn#: %#InterfaceNormal# %P%* '
|
||||
|
||||
|
||||
if a:isactive
|
||||
let l:statusline .= l:active . "%{&buftype == '' ? '' : ' '}%q%h%w%#StatusLineActiveNoText#"
|
||||
else
|
||||
let l:statusline .= l:normal . "%{&buftype == '' ? '' : ' '}%q%h%w%#StatusLineNormalNoText#"
|
||||
endif
|
||||
let l:statusline .= "%{&buftype == '' ? '' : ' '}%s"
|
||||
|
||||
"}}}
|
||||
|
||||
" file info{{{
|
||||
if a:isactive == 1
|
||||
let l:statusline.=l:active
|
||||
let l:statusline.=" %{strlen(&ft)?&ft:'none'} "
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=' %{strlen(&fenc)?&fenc:&enc} '
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=' %{&fileformat} '
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=' %{&spelllang} '
|
||||
else
|
||||
let l:statusline.=l:separator
|
||||
endif
|
||||
"}}}
|
||||
|
||||
" current register{{{
|
||||
if a:isactive
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=' %#StatusLineActiveQuotes#"' . l:active . '%{v:register}%#StatusLineActiveQuotes#" '
|
||||
endif
|
||||
"}}}
|
||||
|
||||
" session status{{{
|
||||
if a:isactive
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=" %{ObsessionStatus(fnamemodify(v:this_session,':t'),'---')} %*"
|
||||
let l:statusline.=l:separator . l:active
|
||||
endif
|
||||
"}}}
|
||||
|
||||
" right/left divider{{{
|
||||
|
||||
" modified version
|
||||
let l:color = 'StatusLineDivMod' . (a:isactive?'Active':'')
|
||||
let l:statusline .= GetStatusFrag("&modified && mode() != 'i'", l:color, '%<', l:divider)
|
||||
|
||||
" unmodified version
|
||||
let l:color = 'StatusLineDiv' . (a:isactive?'Active':'')
|
||||
let l:statusline .= GetStatusFrag("!&modified && mode() != 'i'", l:color, '%<', l:divider)
|
||||
|
||||
" input mode version
|
||||
if a:isactive
|
||||
let l:statusline .= GetStatusFrag("mode() == 'i'", 'StatusLineDivInput', '%<', l:divider)
|
||||
endif
|
||||
|
||||
let l:statusline.= l:separator . '%*%='
|
||||
|
||||
"}}}
|
||||
|
||||
" modified flag {{{
|
||||
" let l:statusline.='%#StatusLineMod#%M' . l:separator . '%*'
|
||||
"}}}
|
||||
|
||||
" path/filename.extension{{{
|
||||
|
||||
|
||||
if a:isactive
|
||||
let l:statusline.='%#StatusLineDirActive# '
|
||||
let l:statusline.="%{expand('%:p:h:t')}/"
|
||||
let l:statusline.='%#StatusLineFileActive#'
|
||||
|
||||
let l:statusline.="%{expand('%:t:r')}"
|
||||
|
||||
let l:statusline.='%#StatusLineDotActive#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?'.':''}"
|
||||
let l:statusline.='%#StatusLineExtActive#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?expand('%:e'):expand('%:e')}"
|
||||
let l:statusline.=' %*'
|
||||
else
|
||||
let l:statusline.='%#StatusLineDir# '
|
||||
let l:statusline.="%{expand('%:p:h')}/"
|
||||
let l:statusline.='%#StatusLineFile#'
|
||||
|
||||
let l:statusline.="%{expand('%:t:r')}"
|
||||
|
||||
let l:statusline.='%#StatusLineDot#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?'.':''}"
|
||||
let l:statusline.='%#StatusLineExt#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?expand('%:e'):expand('%:e')}"
|
||||
let l:statusline.=' %*'
|
||||
endif
|
||||
let l:statusline .= '%#CRNormal#%r' " TODO color
|
||||
|
||||
"}}}
|
||||
|
||||
" linter status "{{{
|
||||
" let l:statusline.= "%{LinterStatus()} "
|
||||
|
||||
if a:isactive
|
||||
" errors
|
||||
let l:statusline .= " %#CRNoiseDark#%{(GetLinterStatus('error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignError#%{(GetLinterStatus('error') == 0?'':GetLinterStatus('error'))}"
|
||||
" style errors
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('style_error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignErrorDark#%{(GetLinterStatus('style_error') == 0?'':GetLinterStatus('style_error'))} "
|
||||
|
||||
" warnings
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignWarning#%{(GetLinterStatus('warning') == 0?'':GetLinterStatus('warning'))}"
|
||||
" style warnings
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('style_warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignWarningDark#%{(GetLinterStatus('style_warning') == 0?'':GetLinterStatus('style_warning'))} "
|
||||
|
||||
" info
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('info') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoiseRed#%{(GetLinterStatus('info') == 0?'':GetLinterStatus('info'))}"
|
||||
else
|
||||
" errors
|
||||
let l:statusline .= " %#CRNoiseDarker#%{(GetLinterStatus('error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoiseBright#%{(GetLinterStatus('error') == 0?'':GetLinterStatus('error'))}"
|
||||
" style errors
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%{(GetLinterStatus('style_error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoiseBright#%{(GetLinterStatus('style_error') == 0?'':GetLinterStatus('style_error'))} "
|
||||
|
||||
" warnings
|
||||
let l:statusline .= "%#CRNoiseDarker#%{(GetLinterStatus('warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoise#%{(GetLinterStatus('warning') == 0?'':GetLinterStatus('warning'))}"
|
||||
" style warnings
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%{(GetLinterStatus('style_warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoise#%{(GetLinterStatus('style_warning') == 0?'':GetLinterStatus('style_warning'))} "
|
||||
|
||||
" info
|
||||
let l:statusline .= "%#CRNoiseDarker#%{GetLinterStatus('info') == 0 ? '-' : GetLinterStatus('info')}"
|
||||
endif
|
||||
|
||||
"}}}
|
||||
|
||||
return l:statusline
|
||||
endfunction
|
||||
|
||||
|
||||
" status line autocommands{{{
|
||||
augroup status
|
||||
autocmd!
|
||||
autocmd WinEnter * setlocal statusline=%!GetStatus(1)
|
||||
autocmd WinLeave * setlocal statusline=%!GetStatus(0)
|
||||
" autocmd InsertChange * setlocal statusline=%!GetStatus(1)
|
||||
augroup END
|
||||
"}}}}}}
|
||||
|
||||
|
||||
" #autocommands{{{
|
||||
|
||||
" persistent folds
|
||||
|
@ -529,16 +279,6 @@ if !exists('*RangerExplorer') "{{{
|
|||
map <Leader>ra :call RangerExplorer()<CR>
|
||||
endif"}}}
|
||||
|
||||
function! LinterStatus() abort "{{{
|
||||
let l:counts = ale#statusline#Count(bufnr(''))
|
||||
|
||||
let l:all_errors = l:counts.error + l:counts.style_error
|
||||
let l:all_non_errors = l:counts.total - l:all_errors
|
||||
|
||||
return l:counts.total == 0 ? 'OK' : printf('%dW %dE', l:all_non_errors, l:all_errors)
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! GetLinterStatus(key) abort "{{{
|
||||
let l:linter = ale#statusline#Count(bufnr(''))
|
||||
|
||||
|
@ -546,137 +286,7 @@ function! GetLinterStatus(key) abort "{{{
|
|||
endfunction
|
||||
|
||||
"}}}
|
||||
|
||||
"}}}
|
||||
|
||||
" #plugin settings{{{
|
||||
|
||||
" vim-peekaboo
|
||||
let g:peekaboo_window = 'vert to 30new'
|
||||
|
||||
" gitgutter
|
||||
nmap ]h <Plug>GitGutterNextHunk
|
||||
nmap [h <Plug>GitGutterPrevHunk
|
||||
omap ih <Plug>GitGutterTextObjectInnerPending
|
||||
omap ah <Plug>GitGutterTextObjectOuterPending
|
||||
xmap ih <Plug>GitGutterTextObjectInnerVisual
|
||||
xmap ah <Plug>GitGutterTextObjectOuterVisual
|
||||
|
||||
" Use the silver searcher ag command instead of grep
|
||||
if executable('ag')
|
||||
" Use ag over grep
|
||||
set grepprg=ag\ --nogroup\ --nocolor
|
||||
|
||||
" Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
|
||||
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
|
||||
|
||||
" ag is fast enough that CtrlP doesn't need to cache
|
||||
let g:ctrlp_use_caching = 0
|
||||
endif
|
||||
|
||||
"vim-wiki
|
||||
let g:vimwiki_list = [{'path': '~/vimwiki/', 'path_html': '~/vimwiki_html/'}]
|
||||
|
||||
" youcompleteme
|
||||
let g:ycm_collect_identifiers_from_tags_files = 1
|
||||
|
||||
" emmet
|
||||
let g:user_emmet_leader_key='<C-y>'
|
||||
|
||||
" taboo.vim
|
||||
set sessionoptions+=tabpages,globals
|
||||
let g:taboo_tab_format = ' %f%m '
|
||||
let g:taboo_renamed_tab_format = ' %l%m '
|
||||
let g:taboo_modified_tab_flag = '+'
|
||||
|
||||
" vue-vim
|
||||
" disable preprocessor checking for vue files - increases speed
|
||||
let g:vue_disable_pre_processors=1
|
||||
" set custom syntax highlighting
|
||||
augroup fixhighlighting
|
||||
autocmd BufNewFile,BufRead *.vue syntax sync fromstart
|
||||
augroup END
|
||||
|
||||
|
||||
" ALE
|
||||
nnoremap <leader>ne :lnext<cr>
|
||||
nnoremap <leader>pe :lprev<cr>
|
||||
|
||||
let g:ale_sign_error = '>>'
|
||||
let g:ale_sign_warning = '--'
|
||||
let g:ale_sign_column_always = 1
|
||||
|
||||
let g:ale_linters = {'scss': ['stylelint'], 'javascript': ['eslint'], 'php':['php'], 'html':['htmlhint']}
|
||||
let g:ale_html_htmlhint_options = '-c ~/.htmlhintrc --format=unix'
|
||||
let g:ale_fixers = {'javascript': ['eslint']}
|
||||
|
||||
|
||||
" ultisnips
|
||||
let g:UltiSnipsSnippetsDir="~/.vim/UltiSnips"
|
||||
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
|
||||
let g:UltiSnipsExpandTrigger='<c-j>'
|
||||
let g:UltiSnipsJumpForwardTrigger='<c-b>'
|
||||
let g:UltiSnipsJumpBackwardTrigger='<c-z>'
|
||||
let g:UltiSnipsEditSplit='horizontal'
|
||||
|
||||
" Netrw
|
||||
let g:netrw_liststyle=3
|
||||
let g:netrw_list_hide='^\..*'
|
||||
|
||||
|
||||
" bufexploer
|
||||
nnoremap <leader>o :BufExplorer<CR>
|
||||
|
||||
" undotree
|
||||
nnoremap <leader>ut :UndotreeToggle<cr>
|
||||
|
||||
" TagBar
|
||||
nnoremap <leader>tb :TagbarOpen fj<CR>
|
||||
nnoremap <leader>] :tag /[.#@]<c-r>=expand('<cword>')<cr><cr>
|
||||
let g:tagbar_autoclose = 1
|
||||
" let g:tagbar_autopreview = 1
|
||||
" let g:tagbar_previewwin_pos = ''
|
||||
|
||||
let g:tagbar_type_css = {
|
||||
\ 'ctagstype' : 'css',
|
||||
\ 'kinds' : [
|
||||
\ 'c:classes',
|
||||
\ 'i:ids',
|
||||
\ 't:tags',
|
||||
\ 'm:medias'
|
||||
\ ]
|
||||
\}
|
||||
|
||||
let g:tagbar_type_scss = {
|
||||
\ 'ctagstype' : 'scss',
|
||||
\ 'kinds' : [
|
||||
\ 'v:variables',
|
||||
\ 'c:classes',
|
||||
\ 'i:ids',
|
||||
\ 't:tags',
|
||||
\ 'd:medias',
|
||||
\ 'm:mixins',
|
||||
\ 'f:functions'
|
||||
\ ]
|
||||
\}
|
||||
|
||||
let g:tagbar_type_vue = {
|
||||
\ 'ctagstype' : 'vue',
|
||||
\ 'kinds' : [
|
||||
\ 'o:objects',
|
||||
\ 'f:functions',
|
||||
\ 'a:array',
|
||||
\ 's:string',
|
||||
\ 'b:boolean',
|
||||
\ 'n:number',
|
||||
\ 'v:variable'
|
||||
\ ]
|
||||
\ }
|
||||
|
||||
" gutentags
|
||||
let g:gutentags_ctags_tagfile = '.tags'
|
||||
let g:gutentags_ctags_exclude = ['package.json', 'Session.vim' ,'package-lock.json', 'TODO.txt']
|
||||
|
||||
"}}}
|
||||
|
||||
" vim: foldmethod=marker
|
||||
|
|
|
@ -0,0 +1,190 @@
|
|||
" #statusline format
|
||||
" isactive = 0 when inactive, 1 otherwise
|
||||
|
||||
" get status line
|
||||
function! GetStatus(isactive)
|
||||
" let l:linter = ale#statusline#Count(bufnr(''))
|
||||
let l:divider = '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >'
|
||||
let l:separator = '%#StatusLineSeparator# '
|
||||
let l:normal = '%#StatusLineNormal#'
|
||||
let l:active = '%#StatusLineActive#'
|
||||
let l:bracket_open = '%#CRNoiseDark#('
|
||||
let l:bracket_close = '%#CRNoiseDark#) '
|
||||
let l:statusline = ''
|
||||
" let l:statusline = '%#CRNoise#b%#CRNoiseDark#:%#CRNoiseBright#%n '
|
||||
|
||||
" let l:curbuf = bufnr('')
|
||||
" let l:statusline .= '%#CRNormal#' . l:curbuf . ': ' . &buftype . ' '
|
||||
|
||||
" file percentage
|
||||
let l:statusline.='%#FoldColumn#: %#InterfaceNormal# %P%* '
|
||||
|
||||
|
||||
if a:isactive
|
||||
let l:statusline .= l:active . "%{&buftype == '' ? '' : ' '}%q%h%w%#StatusLineActiveNoText#"
|
||||
else
|
||||
let l:statusline .= l:normal . "%{&buftype == '' ? '' : ' '}%q%h%w%#StatusLineNormalNoText#"
|
||||
endif
|
||||
let l:statusline .= "%{&buftype == '' ? '' : ' '}%s"
|
||||
|
||||
|
||||
|
||||
" file info
|
||||
if a:isactive == 1
|
||||
let l:statusline.=l:active
|
||||
let l:statusline.=" %{strlen(&ft)?&ft:'none'} "
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=' %{strlen(&fenc)?&fenc:&enc} '
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=' %{&fileformat} '
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=' %{&spelllang} '
|
||||
else
|
||||
let l:statusline.=l:separator
|
||||
endif
|
||||
|
||||
|
||||
" current register
|
||||
if a:isactive
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:ttatusline.=' %#StatusLineActiveQuotes#"' . l:active . '%{v:register}%#StatusLineActiveQuotes#" '
|
||||
endif
|
||||
|
||||
|
||||
" session status
|
||||
if a:isactive
|
||||
let l:statusline.=l:separator . l:active
|
||||
let l:statusline.=" %{ObsessionStatus(fnamemodify(v:this_session,':t'),'---')} %*"
|
||||
let l:statusline.=l:separator . l:active
|
||||
endif
|
||||
|
||||
|
||||
" right/left divider
|
||||
|
||||
" modified version
|
||||
let l:color = 'StatusLineDivMod' . (a:isactive?'Active':'')
|
||||
let l:statusline .= GetStatusFrag("&modified && mode() != 'i'", l:color, '%<', l:divider)
|
||||
|
||||
" unmodified version
|
||||
let l:color = 'StatusLineDiv' . (a:isactive?'Active':'')
|
||||
let l:statusline .= GetStatusFrag("!&modified && mode() != 'i'", l:color, '%<', l:divider)
|
||||
|
||||
" input mode version
|
||||
if a:isactive
|
||||
let l:statusline .= GetStatusFrag("mode() == 'i'", 'StatusLineDivInput', '%<', l:divider)
|
||||
endif
|
||||
|
||||
let l:statusline.= l:separator . '%*%='
|
||||
|
||||
|
||||
|
||||
" modified flag
|
||||
" let l:statusline.='%#StatusLineMod#%M' . l:separator . '%*'
|
||||
|
||||
|
||||
" path/filename.extension
|
||||
|
||||
|
||||
if a:isactive
|
||||
let l:statusline.='%#StatusLineDirActive# '
|
||||
let l:statusline.="%{expand('%:p:h:t')}/"
|
||||
let l:statusline.='%#StatusLineFileActive#'
|
||||
|
||||
let l:statusline.="%{expand('%:t:r')}"
|
||||
|
||||
let l:statusline.='%#StatusLineDotActive#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?'.':''}"
|
||||
let l:statusline.='%#StatusLineExtActive#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?expand('%:e'):expand('%:e')}"
|
||||
let l:statusline.=' %*'
|
||||
else
|
||||
let l:statusline.='%#StatusLineDir# '
|
||||
let l:statusline.="%{expand('%:p:h')}/"
|
||||
let l:statusline.='%#StatusLineFile#'
|
||||
|
||||
let l:statusline.="%{expand('%:t:r')}"
|
||||
|
||||
let l:statusline.='%#StatusLineDot#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?'.':''}"
|
||||
let l:statusline.='%#StatusLineExt#'
|
||||
let l:statusline.="%{strlen(expand('%:e'))?expand('%:e'):expand('%:e')}"
|
||||
let l:statusline.=' %*'
|
||||
endif
|
||||
let l:statusline .= '%#CRNormal#%r' " TODO color
|
||||
|
||||
|
||||
|
||||
" linter status "
|
||||
" let l:statusline.= "%{LinterStatus()} "
|
||||
|
||||
if a:isactive
|
||||
" errors
|
||||
let l:statusline .= " %#CRNoiseDark#%{(GetLinterStatus('error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignError#%{(GetLinterStatus('error') == 0?'':GetLinterStatus('error'))}"
|
||||
" style errors
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('style_error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignErrorDark#%{(GetLinterStatus('style_error') == 0?'':GetLinterStatus('style_error'))} "
|
||||
|
||||
" warnings
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignWarning#%{(GetLinterStatus('warning') == 0?'':GetLinterStatus('warning'))}"
|
||||
" style warnings
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('style_warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#InterfaceSignWarningDark#%{(GetLinterStatus('style_warning') == 0?'':GetLinterStatus('style_warning'))} "
|
||||
|
||||
" info
|
||||
let l:statusline .= "%#CRNoiseDark#%{(GetLinterStatus('info') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoiseRed#%{(GetLinterStatus('info') == 0?'':GetLinterStatus('info'))}"
|
||||
else
|
||||
" errors
|
||||
let l:statusline .= " %#CRNoiseDarker#%{(GetLinterStatus('error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoiseBright#%{(GetLinterStatus('error') == 0?'':GetLinterStatus('error'))}"
|
||||
" style errors
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%{(GetLinterStatus('style_error') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoiseBright#%{(GetLinterStatus('style_error') == 0?'':GetLinterStatus('style_error'))} "
|
||||
|
||||
" warnings
|
||||
let l:statusline .= "%#CRNoiseDarker#%{(GetLinterStatus('warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoise#%{(GetLinterStatus('warning') == 0?'':GetLinterStatus('warning'))}"
|
||||
" style warnings
|
||||
let l:statusline .= '%#CRNoiseDarker#|'
|
||||
let l:statusline .= "%{(GetLinterStatus('style_warning') == 0?'-':'')}"
|
||||
let l:statusline .= "%#CRNoise#%{(GetLinterStatus('style_warning') == 0?'':GetLinterStatus('style_warning'))} "
|
||||
|
||||
" info
|
||||
let l:statusline .= "%#CRNoiseDarker#%{GetLinterStatus('info') == 0 ? '-' : GetLinterStatus('info')}"
|
||||
endif
|
||||
|
||||
|
||||
|
||||
return l:statusline
|
||||
endfunction
|
||||
|
||||
|
||||
" status line autocommands
|
||||
augroup status
|
||||
autocmd!
|
||||
autocmd WinEnter * setlocal statusline=%!GetStatus(1)
|
||||
autocmd WinLeave * setlocal statusline=%!GetStatus(0)
|
||||
" autocmd WinNew * setlocal statusline=%!GetStatus(1)
|
||||
" autocmd InsertChange * setlocal statusline=%!GetStatus(1)
|
||||
augroup END
|
||||
|
||||
|
||||
|
||||
function! LinterStatus() abort "{{{
|
||||
let l:counts = ale#statusline#Count(bufnr(''))
|
||||
|
||||
let l:all_errors = l:counts.error + l:counts.style_error
|
||||
let l:all_non_errors = l:counts.total - l:all_errors
|
||||
|
||||
return l:counts.total == 0 ? 'OK' : printf('%dW %dE', l:all_non_errors, l:all_errors)
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
|
||||
|
||||
" vim: foldmethod=marker
|
|
@ -0,0 +1,214 @@
|
|||
" #plugins{{{
|
||||
set runtimepath+=~/.vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
|
||||
Plugin 'VundleVim/Vundle.vim'
|
||||
"css3-syntax
|
||||
Plugin 'hail2u/vim-css3-syntax.git'
|
||||
"scss-syntax
|
||||
Plugin 'cakebaker/scss-syntax.vim'
|
||||
"bufexplorer
|
||||
Plugin 'jlanzarotta/bufexplorer'
|
||||
"tagbar
|
||||
Plugin 'majutsushi/tagbar'
|
||||
"vim-surround
|
||||
Plugin 'tpope/vim-surround'
|
||||
"undotree
|
||||
Plugin 'mbbill/undotree'
|
||||
" Ctrlp
|
||||
Plugin 'ctrlpvim/ctrlp.vim'
|
||||
" Obsession
|
||||
Plugin 'tpope/vim-obsession'
|
||||
" vim-css-color
|
||||
Plugin 'ap/vim-css-color'
|
||||
" vim-javascript
|
||||
Plugin 'pangloss/vim-javascript'
|
||||
" ultisnips
|
||||
" https://github.com/sirver/UltiSnips
|
||||
Plugin 'SirVer/ultisnips'
|
||||
" and some snippets
|
||||
" https://github.com/honza/vim-snippets
|
||||
Plugin 'honza/vim-snippets'
|
||||
" ALE
|
||||
" https://github.com/w0rp/ale
|
||||
Plugin 'w0rp/ale'
|
||||
" MatchTag
|
||||
" https://github.com/gregsexton/MatchTag
|
||||
Plugin 'gregsexton/MatchTag'
|
||||
" phpcomplete.vim
|
||||
" https://github.com/shawncplus/phpcomplete.vim
|
||||
Plugin 'shawncplus/phpcomplete.vim'
|
||||
" https://github.com/dsawardekar/wordpress.vim
|
||||
" For up to date Wordpress Files see:
|
||||
" https://github.com/joseluis/wordpress.vim-generator
|
||||
"Plugin 'dsawardekar/wordpress.vim'
|
||||
" disabled - doesn't support universal ctags?
|
||||
" vim-vue
|
||||
" https://github.com/posva/vim-vue
|
||||
Plugin 'posva/vim-vue'
|
||||
" vim-commentary
|
||||
" https://github.com/tpope/vim-commentary
|
||||
Plugin 'tpope/vim-commentary'
|
||||
" vim-repeat
|
||||
" https://github.com/tpope/vim-repeat
|
||||
Plugin 'tpope/vim-repeat'
|
||||
" taboo.vim
|
||||
" https://github.com/gcmt/taboo.vim
|
||||
Plugin 'gcmt/taboo.vim'
|
||||
" https://github.com/mattn/emmet-vim
|
||||
Plugin 'mattn/emmet-vim'
|
||||
" vimwiki
|
||||
" https://github.com/vimwiki/vimwiki
|
||||
Plugin 'vimwiki/vimwiki'
|
||||
" youcompleteme
|
||||
" https://github.com/Valloric/YouCompleteMe
|
||||
Plugin 'Valloric/YouCompleteMe'
|
||||
" gitgutter
|
||||
" https://github.com/airblade/vim-gitgutter/blob/master/README.mkd
|
||||
Plugin 'airblade/vim-gitgutter'
|
||||
" vim-peekaboo
|
||||
" https://github.com/junegunn/vim-peekaboo
|
||||
Plugin 'junegunn/vim-peekaboo'
|
||||
" vim-gutentags
|
||||
" https://github.com/ludovicchabant/vim-gutentags
|
||||
Plugin 'ludovicchabant/vim-gutentags'
|
||||
|
||||
" All of your Plugins must be added before the following line
|
||||
call vundle#end() " required
|
||||
filetype plugin indent on " required
|
||||
|
||||
"}}}
|
||||
|
||||
" #plugin settings{{{
|
||||
|
||||
" vim-peekaboo
|
||||
let g:peekaboo_window = 'vert to 30new'
|
||||
|
||||
" gitgutter
|
||||
nmap ]h <Plug>GitGutterNextHunk
|
||||
nmap [h <Plug>GitGutterPrevHunk
|
||||
omap ih <Plug>GitGutterTextObjectInnerPending
|
||||
omap ah <Plug>GitGutterTextObjectOuterPending
|
||||
xmap ih <Plug>GitGutterTextObjectInnerVisual
|
||||
xmap ah <Plug>GitGutterTextObjectOuterVisual
|
||||
|
||||
" Use the silver searcher ag command instead of grep
|
||||
if executable('ag')
|
||||
" Use ag over grep
|
||||
set grepprg=ag\ --nogroup\ --nocolor
|
||||
|
||||
" Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
|
||||
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
|
||||
|
||||
" ag is fast enough that CtrlP doesn't need to cache
|
||||
let g:ctrlp_use_caching = 0
|
||||
endif
|
||||
|
||||
"vim-wiki
|
||||
let g:vimwiki_list = [{'path': '~/vimwiki/', 'path_html': '~/vimwiki_html/'}]
|
||||
|
||||
" youcompleteme
|
||||
let g:ycm_collect_identifiers_from_tags_files = 1
|
||||
|
||||
" emmet
|
||||
let g:user_emmet_leader_key='<C-y>'
|
||||
|
||||
" taboo.vim
|
||||
set sessionoptions+=tabpages,globals
|
||||
let g:taboo_tab_format = ' %f%m '
|
||||
let g:taboo_renamed_tab_format = ' %l%m '
|
||||
let g:taboo_modified_tab_flag = '+'
|
||||
|
||||
" vue-vim
|
||||
" disable preprocessor checking for vue files - increases speed
|
||||
let g:vue_disable_pre_processors=1
|
||||
" set custom syntax highlighting
|
||||
augroup fixhighlighting
|
||||
autocmd BufNewFile,BufRead *.vue syntax sync fromstart
|
||||
augroup END
|
||||
|
||||
|
||||
" ALE
|
||||
nnoremap <leader>ne :lnext<cr>
|
||||
nnoremap <leader>pe :lprev<cr>
|
||||
|
||||
let g:ale_sign_error = '>>'
|
||||
let g:ale_sign_warning = '--'
|
||||
let g:ale_sign_column_always = 1
|
||||
|
||||
let g:ale_linters = {'scss': ['stylelint'], 'javascript': ['eslint'], 'php':['php'], 'html':['htmlhint']}
|
||||
let g:ale_html_htmlhint_options = '-c ~/.htmlhintrc --format=unix'
|
||||
let g:ale_fixers = {'javascript': ['eslint']}
|
||||
|
||||
|
||||
" ultisnips
|
||||
let g:UltiSnipsSnippetsDir="~/.vim/UltiSnips"
|
||||
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
|
||||
let g:UltiSnipsExpandTrigger='<c-j>'
|
||||
let g:UltiSnipsJumpForwardTrigger='<c-b>'
|
||||
let g:UltiSnipsJumpBackwardTrigger='<c-z>'
|
||||
let g:UltiSnipsEditSplit='horizontal'
|
||||
|
||||
" Netrw
|
||||
let g:netrw_liststyle=3
|
||||
let g:netrw_list_hide='^\..*'
|
||||
|
||||
|
||||
" bufexploer
|
||||
nnoremap <leader>o :BufExplorer<CR>
|
||||
|
||||
" undotree
|
||||
nnoremap <leader>ut :UndotreeToggle<cr>
|
||||
|
||||
" TagBar
|
||||
nnoremap <leader>tb :TagbarOpen fj<CR>
|
||||
nnoremap <leader>] :tag /[.#@]<c-r>=expand('<cword>')<cr><cr>
|
||||
let g:tagbar_autoclose = 1
|
||||
" let g:tagbar_autopreview = 1
|
||||
" let g:tagbar_previewwin_pos = ''
|
||||
|
||||
let g:tagbar_type_css = {
|
||||
\ 'ctagstype' : 'css',
|
||||
\ 'kinds' : [
|
||||
\ 'c:classes',
|
||||
\ 'i:ids',
|
||||
\ 't:tags',
|
||||
\ 'm:medias'
|
||||
\ ]
|
||||
\}
|
||||
|
||||
let g:tagbar_type_scss = {
|
||||
\ 'ctagstype' : 'scss',
|
||||
\ 'kinds' : [
|
||||
\ 'v:variables',
|
||||
\ 'c:classes',
|
||||
\ 'i:ids',
|
||||
\ 't:tags',
|
||||
\ 'd:medias',
|
||||
\ 'm:mixins',
|
||||
\ 'f:functions'
|
||||
\ ]
|
||||
\}
|
||||
|
||||
let g:tagbar_type_vue = {
|
||||
\ 'ctagstype' : 'vue',
|
||||
\ 'kinds' : [
|
||||
\ 'o:objects',
|
||||
\ 'f:functions',
|
||||
\ 'a:array',
|
||||
\ 's:string',
|
||||
\ 'b:boolean',
|
||||
\ 'n:number',
|
||||
\ 'v:variable'
|
||||
\ ]
|
||||
\ }
|
||||
|
||||
" gutentags
|
||||
let g:gutentags_ctags_tagfile = '.tags'
|
||||
let g:gutentags_ctags_exclude = ['package.json', 'Session.vim' ,'package-lock.json', 'TODO.txt']
|
||||
|
||||
"}}}
|
||||
|
||||
|
||||
|
||||
" vim: foldmethod=marker
|
Loading…
Reference in New Issue