From 31b853a7bebad5db3f84af9609ff41f72fa9ad7b Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Thu, 5 Dec 2024 12:19:02 +0800 Subject: Update --- vim/init/config.vim | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'vim/init') diff --git a/vim/init/config.vim b/vim/init/config.vim index 680a5fc..f882f0c 100644 --- a/vim/init/config.vim +++ b/vim/init/config.vim @@ -42,6 +42,40 @@ augroup InitFileTypes " quickfix: hide line number autocmd FileType quickfix setlocal nonumber + " }}} + " Shell {{{ + + ""au FileType bash call InitBash() + ""function! InitBash() + "" setlocal foldexpr=ShellLevel() foldmethod=expr + ""endfunc + + ""function! ShellLevel() + "" let line = getline(v:lnum) + "" let hash_num = matchstr(line, '^\zs\s*#\ze[^!]') + "" if !empty(hash_num) + "" let foldlevel = (len(hash_num) - 1)/2 + 1 + "" return '>'.foldlevel + "" else + "" return "=" + "" endif + ""endfunc + ""function! CountSubfolds(start, end) + "" let count = 0 + "" let current_level = foldlevel(a:start) + "" for lnum in range(a:start + 1, a:end + 1) + "" if foldlevel(lnum) > current_level + "" let count += 1 + "" endif + "" endfor + "" return count + ""endfunction + + ""function! MyFoldText() + "" let lines = v:foldend - v:foldstart + 1 + "" let subfolds = CountSubfolds(v:foldstart, v:foldend) + "" return printf('%d lines, %d subfolds', lines, subfolds) + ""endfunction " }}} " Markdown {{{ -- cgit v1.2.3-70-g09d2