Replace vim-airline by lightline. Add ALE linter. Configure YCM
This commit is contained in:
parent
de3e9adf71
commit
ca3e91e7c3
1 changed files with 60 additions and 33 deletions
93
vimrc
93
vimrc
|
@ -59,20 +59,40 @@ if has("unix") || has("mac")
|
|||
map <F5> :UndotreeToggle<CR>
|
||||
Plugin 'vim-scripts/LaTeX-Box'
|
||||
map <LocalLeader>ll :Latexmk<CR>
|
||||
if isdirectory(expand("/home/lhark/.vim/bundle/YouCompleteMe"))
|
||||
if isdirectory(expand("$HOME/.vim/bundle/YouCompleteMe")) || isdirectory(expand("/usr/share/vim/vimfiles/third_party/ycmd/"))
|
||||
"[Workaround for YCM non-portability]"
|
||||
Plugin 'Valloric/YouCompleteMe'
|
||||
let g:ycm_global_ycm_extra_conf = '/usr/share/vim/vimfiles/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
|
||||
let g:ycm_server_python_interpreter = '/usr/bin/python2'
|
||||
else
|
||||
Plugin 'AutoComplPop'
|
||||
endif
|
||||
Plugin 'vim-airline/vim-airline-themes'
|
||||
Plugin 'vim-airline/vim-airline'
|
||||
Plugin 'w0rp/ale'
|
||||
let g:ale_sign_error = 'E'
|
||||
let g:ale_sign_warning = 'W'
|
||||
Plugin 'itchyny/lightline.vim'
|
||||
let g:lightline = {
|
||||
\'colorscheme': 'solarized',
|
||||
\ 'active': {
|
||||
\ 'left': [['mode', 'paste'], ['filename', 'modified']],
|
||||
\ 'right': [['lineinfo'], ['percent'], ['readonly', 'linter_warnings', 'linter_errors', 'linter_ok']]
|
||||
\ },
|
||||
\ 'component_expand': {
|
||||
\ 'linter_warnings': 'LightlineLinterWarnings',
|
||||
\ 'linter_errors': 'LightlineLinterErrors',
|
||||
\ 'linter_ok': 'LightlineLinterOK'
|
||||
\ },
|
||||
\ 'component_type': {
|
||||
\ 'readonly': 'error',
|
||||
\ 'linter_warnings': 'warning',
|
||||
\ 'linter_errors': 'error'
|
||||
\ },
|
||||
\}
|
||||
Plugin 'godlygeek/tabular'
|
||||
Plugin 'tikhomirov/vim-glsl'
|
||||
Plugin 'mzlogin/vim-smali'
|
||||
Plugin 'jamessan/vim-gnupg'
|
||||
Plugin 'petRUShka/vim-opencl'
|
||||
Plugin 'Raimondi/delimitMate'
|
||||
Plugin 'tpope/vim-surround'
|
||||
Plugin 'captbaritone/better-indent-support-for-php-with-html'
|
||||
"[Autodetect indent style of a file]"
|
||||
|
@ -167,16 +187,8 @@ if has("unix") || has("mac")
|
|||
endif
|
||||
"[Always show StatusLine]"
|
||||
set laststatus=2
|
||||
"[Define StatusLine]"
|
||||
set statusline=""
|
||||
set statusline+=%F%m%r%h%w
|
||||
set wrapscan
|
||||
set statusline+=%=%y
|
||||
set statusline+=\ [%{&ff}]
|
||||
set statusline+=\ Line:%l/%L
|
||||
set statusline+=\ Column:[%v]
|
||||
set statusline+=\ Buffer:[%n]
|
||||
"set statusline+=\ Mode:[%{ShowModeInStatusLine()}]
|
||||
"[Do not show mode in command line]"
|
||||
set noshowmode
|
||||
"[Splitting rules]"
|
||||
set splitbelow
|
||||
set splitright
|
||||
|
@ -199,11 +211,10 @@ set mousehide
|
|||
"[Visualisation settings]"
|
||||
set background=dark
|
||||
set ttyfast
|
||||
set showmode
|
||||
set tabline=""
|
||||
" set cmdheight=1 : default
|
||||
set showtabline=0
|
||||
set colorcolumn=""
|
||||
set colorcolumn=80
|
||||
set nocursorcolumn
|
||||
set cmdwinheight=10
|
||||
set virtualedit=all
|
||||
|
@ -227,7 +238,7 @@ if has("gui_running")
|
|||
elseif has("unix")
|
||||
try
|
||||
colorscheme solarized
|
||||
set guifont=Liberation\ Mono\ 12
|
||||
set guifont=Liberation\ Mono\ 10
|
||||
catch
|
||||
endtry
|
||||
elseif has("mac")
|
||||
|
@ -265,6 +276,7 @@ set history=1000
|
|||
set nowritebackup
|
||||
set undolevels=5000
|
||||
"[Indent & Tab/mode-line settings]"
|
||||
set breakindent
|
||||
set nopaste
|
||||
set modeline
|
||||
set smarttab
|
||||
|
@ -410,7 +422,7 @@ endif
|
|||
"[Python/Perl scripts templates]"
|
||||
function! InitScriptFile(type)
|
||||
if (a:type == "python")
|
||||
execute setline(1, "#!/usr/bin/env python")
|
||||
execute setline(1, "#!/usr/bin/env python3")
|
||||
execute setline(2, "# -*- coding: utf-8 -*-")
|
||||
elseif (a:type == "perl")
|
||||
execute setline(1, "#!/usr/bin/env perl")
|
||||
|
@ -438,21 +450,6 @@ if has("autocmd")
|
|||
autocmd BufWritePre *.py,*.pyw retab
|
||||
autocmd BufWritePre * call DeleteTrailingTWS()
|
||||
endif
|
||||
"[Show current mode in StatusLine]"
|
||||
function! ShowModeInStatusLine()
|
||||
let g:currentMode = mode()
|
||||
let g:showMode = ""
|
||||
if (g:currentMode ==# "i")
|
||||
let g:showMode = "Insert"
|
||||
elseif (g:currentMode ==# "R")
|
||||
let g:showMode = "Replace"
|
||||
elseif (g:currentMode ==# "n")
|
||||
let g:showMode = "Normal"
|
||||
else
|
||||
let g:showMode = "Visual"
|
||||
endif
|
||||
return g:showMode
|
||||
endfunction
|
||||
"[Toggle relativenumber between normal & insert mode]"
|
||||
"[Credit: https://jeffkreeftmeijer.com/vim-number/#relative-line-numbers ]"
|
||||
if has("autocmd")
|
||||
|
@ -462,3 +459,33 @@ if has("autocmd")
|
|||
autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
|
||||
augroup END
|
||||
endif
|
||||
"[ALELint & Lightline compat]"
|
||||
function! LightlineLinterWarnings() 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 ? '' : printf('%d ◆', all_non_errors)
|
||||
endfunction
|
||||
|
||||
function! LightlineLinterErrors() 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 ? '' : printf('%d ✗', all_errors)
|
||||
endfunction
|
||||
|
||||
function! LightlineLinterOK() 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 ? '✓ ' : ''
|
||||
endfunction
|
||||
|
||||
autocmd User ALELint call s:MaybeUpdateLightline()
|
||||
|
||||
" Update and show lightline but only if it's visible (e.g., not in Goyo)
|
||||
function! s:MaybeUpdateLightline()
|
||||
if exists('#lightline')
|
||||
call lightline#update()
|
||||
end
|
||||
endfunction
|
||||
|
|
Loading…
Reference in a new issue