" Vim filetype plugin " Language: Markdown " Maintainer: Tim Pope " 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 " Spellcheck documents we're actually editing (not just viewing) if &modifiable && !&readonly setlocal spell let b:undo_ftplugin .= '|setlocal spell<' endif " Tolerate leading lowercase letters in README.md files, for things like " headings being filenames if expand('%:t') ==# 'README.md' setlocal spellcapcheck= let b:undo_ftplugin .= '|setlocal spellcapcheck<' endif " Stop here if the user doesn't want ftplugin mappings if exists('no_plugin_maps') || exists('no_markdown_maps') finish endif " Quote operator nnoremap q \ quote#Quote() xnoremap q \ quote#Quote() let b:undo_ftplugin .= '|nunmap q' \ . '|xunmap q' " Quote operator with reformatting nnoremap Q \ quote#QuoteReformat() xnoremap Q \ quote#QuoteReformat() let b:undo_ftplugin .= '|nunmap Q' \ . '|xunmap Q' " Autoformat headings command! -buffer -nargs=1 MarkdownHeading \ call markdown#Heading() nnoremap = \ :MarkdownHeading = nnoremap - \ :MarkdownHeading - let b:undo_ftplugin .= '|delcommand MarkdownHeading' \ . '|nunmap =' \ . '|nunmap -' " vim:set sw=2: