vim.cmd([[ function! StatusDiagnostic() abort let info = get(b:, 'coc_diagnostic_info', {}) if empty(info) | return '' | endif let msgs = [] if get(info, 'error', 0) call add(msgs, 'E' . info['error']) endif if get(info, 'warning', 0) call add(msgs, 'W' . info['warning']) endif return join(msgs, ' '). ' ' . get(g:, 'coc_status', '') endfunction "let g:currentmode={ "\ 'n' : 'NORMAL ', "\ 'no' : 'N·Operator Pending ', "\ 'v' : 'VISUAL ', "\ 'V' : 'V·Line ', "\ "\" : 'V·Block ', "\ 's' : 'Select ', "\ 'S' : 'S·Line ', "\ 'x19' : 'S·Block ', "\ 'i' : 'INSERT ', "\ 'R' : 'REPLACE ', "\ 'Rv' : 'V·Replace ', "\ 'c' : 'Command ', "\ 'cv' : 'Vim Ex ', "\ 'ce' : 'Ex ', "\ 'r' : 'Prompt ', "\ 'rm' : 'More ', "\ 'r?' : 'Confirm ', "\ '!' : 'Shell ', "\ 't' : 'Terminal ' "\} function! ReadOnly() if &readonly || !&modifiable return '' else return '' endfunction set statusline= "set statusline+=\ %{toupper(g:currentmode[mode()])} set statusline^=%{StatusDiagnostic()} set statusline+=%8*\ %<%f\ %{ReadOnly()}\ %w set statusline+=%{&modified?'[+]':''} set statusline+=%= set statusline+=\ %y "set statusline+=\ %{&fileencoding?&fileencoding:&encoding} "set statusline+=\[%{&fileformat}\] set statusline+=\ %p%% set statusline+=\ %l:%c set statusline+=\ " ]])