diff options
Diffstat (limited to 'vim/init/config.vim')
-rw-r--r-- | vim/init/config.vim | 34 |
1 files changed, 34 insertions, 0 deletions
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 | |||
@@ -43,6 +43,40 @@ augroup InitFileTypes | |||
43 | autocmd FileType quickfix setlocal nonumber | 43 | autocmd FileType quickfix setlocal nonumber |
44 | 44 | ||
45 | " }}} | 45 | " }}} |
46 | " Shell {{{ | ||
47 | |||
48 | ""au FileType bash call InitBash() | ||
49 | ""function! InitBash() | ||
50 | "" setlocal foldexpr=ShellLevel() foldmethod=expr | ||
51 | ""endfunc | ||
52 | |||
53 | ""function! ShellLevel() | ||
54 | "" let line = getline(v:lnum) | ||
55 | "" let hash_num = matchstr(line, '^\zs\s*#\ze[^!]') | ||
56 | "" if !empty(hash_num) | ||
57 | "" let foldlevel = (len(hash_num) - 1)/2 + 1 | ||
58 | "" return '>'.foldlevel | ||
59 | "" else | ||
60 | "" return "=" | ||
61 | "" endif | ||
62 | ""endfunc | ||
63 | ""function! CountSubfolds(start, end) | ||
64 | "" let count = 0 | ||
65 | "" let current_level = foldlevel(a:start) | ||
66 | "" for lnum in range(a:start + 1, a:end + 1) | ||
67 | "" if foldlevel(lnum) > current_level | ||
68 | "" let count += 1 | ||
69 | "" endif | ||
70 | "" endfor | ||
71 | "" return count | ||
72 | ""endfunction | ||
73 | |||
74 | ""function! MyFoldText() | ||
75 | "" let lines = v:foldend - v:foldstart + 1 | ||
76 | "" let subfolds = CountSubfolds(v:foldstart, v:foldend) | ||
77 | "" return printf('%d lines, %d subfolds', lines, subfolds) | ||
78 | ""endfunction | ||
79 | " }}} | ||
46 | " Markdown {{{ | 80 | " Markdown {{{ |
47 | 81 | ||
48 | au FileType markdown call InitMarkdownFile() | 82 | au FileType markdown call InitMarkdownFile() |