aboutsummaryrefslogtreecommitdiff
path: root/vim/after/ftplugin
diff options
context:
space:
mode:
Diffstat (limited to 'vim/after/ftplugin')
-rw-r--r--vim/after/ftplugin/markdown/autoformat.vim33
-rw-r--r--vim/after/ftplugin/markdown/suspend_autoformat.vim34
2 files changed, 33 insertions, 34 deletions
diff --git a/vim/after/ftplugin/markdown/autoformat.vim b/vim/after/ftplugin/markdown/autoformat.vim
new file mode 100644
index 00000000..9a963fbb
--- /dev/null
+++ b/vim/after/ftplugin/markdown/autoformat.vim
@@ -0,0 +1,33 @@
+" Only do this when not done yet for this buffer
+" Also do nothing if 'compatible' enabled, or if no autocmd feature, or if Vim
+" is too old to support the needed autocmd events
+if exists('b:did_ftplugin_markdown_autoformat') || &compatible
+ finish
+endif
+if !has('autocmd') || v:version < 700
+ finish
+endif
+let b:did_ftplugin_markdown_autoformat = 1
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|unlet b:did_ftplugin_markdown_autoformat'
+endif
+
+" Suspend auto-formatting when in a code block (four-space indent)
+autocmd BufWinEnter,CursorMoved,CursorMovedI,WinEnter
+ \ <buffer>
+ \ call ftplugin#markdown#autoformat#Line()
+
+" Suspend auto-format when pasting anything with a linebreak
+nnoremap <buffer> <silent>
+ \ p
+ \ :<C-u>call ftplugin#markdown#autoformat#PutBelow()<CR>
+nnoremap <buffer> <silent>
+ \ P
+ \ :<C-u>call ftplugin#markdown#autoformat#PutAbove()<CR>
+
+" Undo all the above
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|setlocal formatoptions<'
+endif
diff --git a/vim/after/ftplugin/markdown/suspend_autoformat.vim b/vim/after/ftplugin/markdown/suspend_autoformat.vim
deleted file mode 100644
index b2de7828..00000000
--- a/vim/after/ftplugin/markdown/suspend_autoformat.vim
+++ /dev/null
@@ -1,34 +0,0 @@
-" Only do this when not done yet for this buffer
-" Also do nothing if 'compatible' enabled, or if no autocmd feature, or if Vim
-" is too old to support the needed autocmd events
-if exists('b:did_ftplugin_markdown_suspend_autoformat') || &compatible
- finish
-endif
-if !has('autocmd') || v:version < 700
- finish
-endif
-let b:did_ftplugin_markdown_suspend_autoformat = 1
-if exists('b:undo_ftplugin')
- let b:undo_ftplugin = b:undo_ftplugin
- \ . '|unlet b:did_ftplugin_markdown_suspend_autoformat'
-endif
-
-" When editing a code block, quietly remove auto 'a' from 'formatoptions' if
-" present, flagging that we've done so; restore it once we move away.
-autocmd BufWinEnter,CursorMoved,CursorMovedI,WinEnter
- \ <buffer>
- \ if getline('.') =~# '\m^ '
- \ | if &formatoptions =~# '\ma'
- \ | setlocal formatoptions-=a
- \ | let b:markdown_suspend_autoformat_suspended = 1
- \ | endif
- \ | elseif exists('b:markdown_suspend_autoformat_suspended')
- \ | setlocal formatoptions+=a
- \ | unlet b:markdown_suspend_autoformat_suspended
- \ | endif
-
-" Undo all the above
-if exists('b:undo_ftplugin')
- let b:undo_ftplugin = b:undo_ftplugin
- \ . '|setlocal formatoptions<'
-endif