diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2019-05-23 09:18:16 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2019-05-23 09:18:16 +1200 |
commit | e4a869c938065cf994edf390ab3947869d58576a (patch) | |
tree | a9aae52786cb5737e56ffcb8faed870f7ca0dd70 /vim/ftplugin | |
parent | Add undo instructions for Markdown heading stuff (diff) | |
download | dotfiles-e4a869c938065cf994edf390ab3947869d58576a.tar.gz dotfiles-e4a869c938065cf994edf390ab3947869d58576a.zip |
Add Tim Pope's Markdown ftplugin
I disagree with just enough of this that I think it's worth writing it
out my own way. Adding the file as it is for now so I can track and
document what I change.
Diffstat (limited to 'vim/ftplugin')
-rw-r--r-- | vim/ftplugin/markdown.vim | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vim/ftplugin/markdown.vim b/vim/ftplugin/markdown.vim new file mode 100644 index 00000000..277ba94e --- /dev/null +++ b/vim/ftplugin/markdown.vim @@ -0,0 +1,50 @@ +" Vim filetype plugin +" Language: Markdown +" Maintainer: Tim Pope <vimNOSPAM@tpope.org> +" Last Change: 2016 Aug 29 + +if exists("b:did_ftplugin") + finish +endif + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim + +setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s +setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o +setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]: + +if exists('b:undo_ftplugin') + let b:undo_ftplugin .= "|setl cms< com< fo< flp<" +else + let b:undo_ftplugin = "setl cms< com< fo< flp<" +endif + +function! MarkdownFold() + let line = getline(v:lnum) + + " Regular headers + let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=') + if depth > 0 + return ">" . depth + endif + + " Setext style headings + let nextline = getline(v:lnum + 1) + if (line =~ '^.\+$') && (nextline =~ '^=\+$') + return ">1" + endif + + if (line =~ '^.\+$') && (nextline =~ '^-\+$') + return ">2" + endif + + return "=" +endfunction + +if has("folding") && exists("g:markdown_folding") + setlocal foldexpr=MarkdownFold() + setlocal foldmethod=expr + let b:undo_ftplugin .= " foldexpr< foldmethod<" +endif + +" vim:set sw=2: |