file structure
This commit is contained in:
parent
fb5beeb4ca
commit
50bdbcd016
400
vimrc
400
vimrc
|
@ -1,86 +1,13 @@
|
||||||
filetype off " required
|
filetype off " required
|
||||||
set ttyfast
|
set ttyfast
|
||||||
|
|
||||||
" #plugins{{{
|
source vimrc.plugins.vim
|
||||||
set runtimepath+=~/.vim/bundle/Vundle.vim
|
source vimrc.functions.vim
|
||||||
call vundle#begin()
|
|
||||||
|
|
||||||
Plugin 'VundleVim/Vundle.vim'
|
for f in split(glob('vimrc.d/*.vim'), '\n')
|
||||||
"css3-syntax
|
exe 'source' f
|
||||||
Plugin 'hail2u/vim-css3-syntax.git'
|
endfor
|
||||||
"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
|
|
||||||
|
|
||||||
"}}}
|
|
||||||
|
|
||||||
" #settings{{{
|
" #settings{{{
|
||||||
" set t_Sf=<Esc>[3%p1%dm " foreground colour
|
" set t_Sf=<Esc>[3%p1%dm " foreground colour
|
||||||
|
@ -249,183 +176,6 @@ iabbrev waht what
|
||||||
iabbrev tehn then
|
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{{{
|
" #autocommands{{{
|
||||||
|
|
||||||
" persistent folds
|
" persistent folds
|
||||||
|
@ -529,16 +279,6 @@ if !exists('*RangerExplorer') "{{{
|
||||||
map <Leader>ra :call RangerExplorer()<CR>
|
map <Leader>ra :call RangerExplorer()<CR>
|
||||||
endif"}}}
|
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 "{{{
|
function! GetLinterStatus(key) abort "{{{
|
||||||
let l:linter = ale#statusline#Count(bufnr(''))
|
let l:linter = ale#statusline#Count(bufnr(''))
|
||||||
|
|
||||||
|
@ -546,137 +286,7 @@ function! GetLinterStatus(key) abort "{{{
|
||||||
endfunction
|
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
|
" 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