diff options
-rw-r--r-- | vim/after/ftplugin/markdown/spell.vim | 16 | ||||
-rw-r--r-- | vim/after/ftplugin/markdown/suspend_autoformat.vim | 34 | ||||
-rw-r--r-- | vim/after/ftplugin/text/spell.vim | 16 | ||||
-rw-r--r-- | vim/ftdetect/; | 12 |
4 files changed, 52 insertions, 26 deletions
diff --git a/vim/after/ftplugin/markdown/spell.vim b/vim/after/ftplugin/markdown/spell.vim index bb344374..05fc7c00 100644 --- a/vim/after/ftplugin/markdown/spell.vim +++ b/vim/after/ftplugin/markdown/spell.vim @@ -1,8 +1,12 @@ " Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled +" Also do nothing if 'compatible' enabled, or if the 'spell' feature isn't +" available if exists('b:did_ftplugin_markdown_spell') || &compatible finish endif +if !has('spell') + finish +endif let b:did_ftplugin_markdown_spell = 1 if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin @@ -10,10 +14,8 @@ if exists('b:undo_ftplugin') endif " Spellcheck documents by default -if has('syntax') - setlocal spell - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal spell<' - endif +setlocal spell +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal spell<' endif diff --git a/vim/after/ftplugin/markdown/suspend_autoformat.vim b/vim/after/ftplugin/markdown/suspend_autoformat.vim new file mode 100644 index 00000000..b2de7828 --- /dev/null +++ b/vim/after/ftplugin/markdown/suspend_autoformat.vim @@ -0,0 +1,34 @@ +" 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 diff --git a/vim/after/ftplugin/text/spell.vim b/vim/after/ftplugin/text/spell.vim index 322090ca..73ca5486 100644 --- a/vim/after/ftplugin/text/spell.vim +++ b/vim/after/ftplugin/text/spell.vim @@ -1,8 +1,12 @@ " Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled +" Also do nothing if 'compatible' enabled, or if the 'spell' feature isn't +" available if exists('b:did_ftplugin_text_spell') || &compatible finish endif +if !has('spell') + finish +endif let b:did_ftplugin_text_spell = 1 if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin @@ -10,10 +14,8 @@ if exists('b:undo_ftplugin') endif " Spellcheck documents by default -if has('syntax') - setlocal spell - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal spell<' - endif +setlocal spell +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal spell<' endif diff --git a/vim/ftdetect/; b/vim/ftdetect/; deleted file mode 100644 index f57ba0e6..00000000 --- a/vim/ftdetect/; +++ /dev/null @@ -1,12 +0,0 @@ -" PHP files -autocmd BufNewFile,BufRead - \ *.php - \ setfiletype php -autocmd BufNewFile,BufRead - \ * - \ if getline(1) =~# '\m^#!.\<php\>' - \ | setfiletype php - \ | endif - \ | if getline(1) =~? '\m^<?php\>' - \ | setfiletype php - \ | endif |