diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-07 10:07:03 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-07 10:09:50 +1300 |
commit | 44bd9a85728ec1eb6b4049b31e98ccdad9a8b02b (patch) | |
tree | c5e5c1da09f32af4a921a656852817b18c826d68 /vim/plugin | |
parent | Add :FixedJoin command (diff) | |
download | dotfiles-44bd9a85728ec1eb6b4049b31e98ccdad9a8b02b.tar.gz dotfiles-44bd9a85728ec1eb6b4049b31e98ccdad9a8b02b.zip |
Give copy_linebreak.vim enable/disable funcs, maps
Add s:CopylinebreakDisable() and s:CopylinebreakEnable functions, and
mapping targets for each of them, just to be thorough.
Diffstat (limited to 'vim/plugin')
-rw-r--r-- | vim/plugin/copy_linebreak.vim | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/vim/plugin/copy_linebreak.vim b/vim/plugin/copy_linebreak.vim index 40f03393..cc0cc741 100644 --- a/vim/plugin/copy_linebreak.vim +++ b/vim/plugin/copy_linebreak.vim @@ -1,7 +1,6 @@ " -" copy_linebreak.vim: Bind a user-defined key sequence to turn off linebreak -" and toggle the showbreak characters and breakindent mode on and off, for -" convenience of copying multiple lines from terminal emulators. +" copy_linebreak.vim: Bind user-defined key sequences to toggle a group of +" options that make text wrapped with 'wrap' copy-paste friendly. " " Author: Tom Ryder <tom@sanctum.geek.nz> " License: Same as Vim itself @@ -13,29 +12,42 @@ if exists('g:loaded_copy_linebreak') endif let g:loaded_copy_linebreak = 1 -" Define function -function! s:CopyLinebreak() +" Enable copy-friendly linebreak options +function! s:CopyLinebreakEnable() + setlocal nolinebreak linebreak? + setlocal showbreak= + if exists('&breakindent') + setlocal nobreakindent + endif +endfunction - " If linebreak is on, turn it off - if &l:linebreak - setlocal nolinebreak linebreak? - setlocal showbreak= - if exists('&breakindent') - setlocal nobreakindent - endif +" Disable copy-friendly linebreak options +function! s:CopyLinebreakDisable() + setlocal linebreak linebreak? + setlocal showbreak< + if exists('&breakindent') + setlocal breakindent< + endif +endfunction - " If it's off, turn it on +" Toggle copy-friendly linebreak options, using the current setting for the +" 'linebreak' option as the pivot +function! s:CopyLinebreakToggle() + if &linebreak + call <SID>CopyLinebreakEnable() else - setlocal linebreak linebreak? - setlocal showbreak< - if exists('&breakindent') - setlocal breakindent - endif + call <SID>CopyLinebreakDisable() endif - endfunction -" Provide mapping proxy to the function just defined +" Provide mappings to the function just defined +noremap <silent> <unique> + \ <Plug>CopyLinebreakEnable + \ :<C-U>call <SID>CopyLinebreakEnable()<CR> noremap <silent> <unique> - \ <Plug>CopyLinebreak - \ :<C-U>call <SID>CopyLinebreak()<CR> + \ <Plug>CopyLinebreakDisable + \ :<C-U>call <SID>CopyLinebreakDisable()<CR> +noremap <silent> <unique> + \ <Plug>CopyLinebreakToggle + \ :<C-U>call <SID>CopyLinebreakToggle()<CR> +endif |