From c680ac2a4b06ebdc2da9a05311f01495c73f9c01 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 30 Jul 2024 17:56:29 +0800 Subject: Update --- vim/init/config.vim | 63 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 25 deletions(-) (limited to 'vim/init/config.vim') diff --git a/vim/init/config.vim b/vim/init/config.vim index 4181ad3..9700c61 100644 --- a/vim/init/config.vim +++ b/vim/init/config.vim @@ -16,14 +16,15 @@ augroup END augroup TerminalSize au! - function! LayoutForSmallTerminal() - if &lines < 19 + function! LayoutForSmallTerminal(bound) + let l:bound = a:bound ? a:bound : 19 + if &lines < l:bound || g:alacritty_extra_padding silent! set cmdheight=0 laststatus=0 showtabline=0 signcolumn=no nowrap scrolloff=1 else silent! set cmdheight& laststatus& showtabline=2 signcolumn=yes scrolloff=3 endif - endfunction - autocmd VimEnter,VimResized * call LayoutForSmallTerminal() + endfunc + autocmd VimEnter,VimResized * silent call LayoutForSmallTerminal(0) augroup END " }}} @@ -140,30 +141,45 @@ augroup InitFileTypes echo "filetype from shebang: ".l:filetype execute "set filetype=".l:filetype endif - endfunction + endfunc autocmd BufReadPost * call ApplyShebang() " }}} " Markdown {{{ augroup Config_Markdown au! - au FileType markdown setlocal wrap sw=2 ts=2 - au FileType markdown setlocal foldexpr=MarkdownLevel() foldmethod=expr + au FileType markdown call InitMarkdown() + + function! InitMarkdown() + setlocal wrap sw=2 ts=2 + setlocal foldexpr=MarkdownLevel() foldmethod=expr + setlocal foldtext=MarkdownFoldTextHeading() + syn match Details '^
' conceal cchar=▶ + syn match Summary '' conceal cchar= + syn match SummaryEnd '' conceal + syn match DetailsEnd '^
' conceal cchar=E + endfunc " Fold by heading level function! MarkdownLevel() let hash_num = matchstr(getline(v:lnum), '^#\+') - let hash_num_at_top = matchstr(getline(v:lnum-1), '^#\+') - if empty(hash_num) - if empty(hash_num_at_top) - return "=" - else - return ">"..(len(hash_num_at_top)) - endif + if !empty(hash_num) + " HEADING + " return ">"..(len(hash_num) - 1) + return len(hash_num) == 1 ? 0 : '>1' else - return len(hash_num) - 1 + " Contents + return "=" endif - endfunction + endfunc + + function! MarkdownFoldTextHeading() + let origin = split(MarkdownFoldText()[2:], ' ') + let heading = substitute(join(origin[:-3], ' '), '\#', ' ', 'g') + let lines = join(origin[-2:], ' ')[1:-2] + let spaces = repeat('.', 50 - len(heading) - len(lines)) + return heading..spaces.." "..lines + endfunc augroup END @@ -186,7 +202,7 @@ augroup InitFileTypes noh startinsert endif - endfunction + endfunc autocmd FileType html,markdown nnoremap cl :call ChangeAttr("class") autocmd FileType html,markdown nnoremap id :call ChangeAttr("id") @@ -194,12 +210,12 @@ augroup InitFileTypes autocmd BufWrite *.html,*.js,*.css call ReloadServer() function! ReloadServer() silent !browser-sync reload &>/dev/null - endfunction + endfunc " }}} " Mail {{{ - autocmd BufRead /tmp/mutt-* set tw=72 + autocmd BufRead /tmp/mutt-* setlocal tw=72 " }}} " Password {{{ @@ -211,12 +227,9 @@ augroup InitFileTypes function SetPasswordFile() setlocal foldminlines=0 setlocal foldmethod=manual - function s:custom() - return "Password" - endfunction - setlocal foldtext=s:custom() + setlocal foldtext="Password" norm! ggzfl - endfunction + endfunc " }}} " Beancount {{{ @@ -225,7 +238,7 @@ augroup InitFileTypes set filetype=beancount silent !setsid fava ~/bean/main.bean &>/dev/null autocmd VimLeave * silent !killall fava - endfunction + endfunc " }}} -- cgit v1.2.3-70-g09d2