From 44bd9a85728ec1eb6b4049b31e98ccdad9a8b02b Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Tue, 7 Nov 2017 10:07:03 +1300 Subject: 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. --- vim/plugin/copy_linebreak.vim | 56 ++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 22 deletions(-) (limited to 'vim/plugin') 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 " 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 CopyLinebreakEnable() else - setlocal linebreak linebreak? - setlocal showbreak< - if exists('&breakindent') - setlocal breakindent - endif + call CopyLinebreakDisable() endif - endfunction -" Provide mapping proxy to the function just defined +" Provide mappings to the function just defined +noremap + \ CopyLinebreakEnable + \ :call CopyLinebreakEnable() noremap - \ CopyLinebreak - \ :call CopyLinebreak() + \ CopyLinebreakDisable + \ :call CopyLinebreakDisable() +noremap + \ CopyLinebreakToggle + \ :call CopyLinebreakToggle() +endif -- cgit v1.2.3