diff options
Diffstat (limited to 'vim/config/format.vim')
-rw-r--r-- | vim/config/format.vim | 76 |
1 files changed, 22 insertions, 54 deletions
diff --git a/vim/config/format.vim b/vim/config/format.vim index 1f24ee56..e1da2d0b 100644 --- a/vim/config/format.vim +++ b/vim/config/format.vim @@ -1,65 +1,33 @@ -" All of this variable logic requires 'eval', and I can't just short-circuit -" it due to a quirk in the way vim-tiny evaluates these expressions -if has('eval') +" Try to set the 'j' flag for 'formatoptions', to automatically delete comment +" leaders when joining lines +silent! set formatoptions+=j - " Figure out if we have the 'j' flag for 'formatoptions', to automatically - " delete comment leaders when joining lines; keep it in a script variable - let s:formatoptions_has_j = v:version > 703 - \ || v:version == 703 && has('patch541') +" Show the current formatoptions at a glance +noremap <silent> + \ <Leader>f + \ :<C-U>setlocal formatoptions?<CR> - " If we do have 'j', default to setting it - if s:formatoptions_has_j - set formatoptions+=j - endif +" Use toggle_option_flag.vim plugin to bind quick toggle actions for some +" 'formatoptions' flags +if has('user_commands') - " - " Use toggle_option_flag.vim plugin to bind quick toggle actions for some - " 'formatoptions' flags; both of the above, plus: - " - " c - Automatically wrap comments at 'textwidth' (which I allow the filetypes - " to set for me) - " t - Automatically wrap text at 'textwidth' (as above) - " - " We need user-defined commands to do this. - " - if !has('user_commands') - finish - endif + " a: Reformat paragraphs to 'textwidth' on all insert or delete operations + nnoremap <silent> + \ <Leader>a + \ :<C-U>ToggleOptionFlagLocal formatoptions a<CR> - " 'c' and 't' have both been around since at least 6.1 + " c: Reformat comments to 'textwidth' nnoremap <silent> \ <Leader>c \ :<C-U>ToggleOptionFlagLocal formatoptions c<CR> + + " j: Delete comment leaders when joining lines + nnoremap <silent> + \ <Leader>j + \ :<C-U>ToggleOptionFlagLocal formatoptions j<CR> + + " t: Reformat non-comment text to 'textwidth' nnoremap <silent> \ <Leader>t \ :<C-U>ToggleOptionFlagLocal formatoptions t<CR> - - " Figure out if we have the 'a' flag for 'formatoptions', to reapply - " 'textwidth' wrapping to the current paragraph on every insertion or - " deletion; keep in a script variable - let s:formatoptions_has_a = v:version > 610 - \ || v:version == 610 && has('patch142') - - " 'a' needs testing - if s:formatoptions_has_a - nnoremap <silent> - \ <Leader>a - \ :<C-U>ToggleOptionFlagLocal formatoptions a<CR> - else - nnoremap <silent> - \ <Leader>a - \ :<C-U>echoerr 'No formatoptions a-flag'<CR> - endif - - " 'j' needs testing - if s:formatoptions_has_j - nnoremap <silent> - \ <Leader>j - \ :<C-U>ToggleOptionFlagLocal formatoptions j<CR> - else - nnoremap <silent> - \ <Leader>j - \ :<C-U>echoerr 'No formatoptions j-flag'<CR> - endif - endif |