aboutsummaryrefslogtreecommitdiff
path: root/autoload/copy_linebreak.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/copy_linebreak.vim')
-rw-r--r--autoload/copy_linebreak.vim31
1 files changed, 31 insertions, 0 deletions
diff --git a/autoload/copy_linebreak.vim b/autoload/copy_linebreak.vim
new file mode 100644
index 0000000..3ea5f1c
--- /dev/null
+++ b/autoload/copy_linebreak.vim
@@ -0,0 +1,31 @@
+" Enable copy-friendly linebreak options
+function! copy_linebreak#Enable() abort
+ setlocal nolinebreak linebreak?
+ let s:showbreak_save = &showbreak
+ set showbreak=
+ if exists('+breakindent')
+ setlocal nobreakindent
+ endif
+endfunction
+
+" Disable copy-friendly linebreak options
+function! copy_linebreak#Disable() abort
+ setlocal linebreak linebreak?
+ if exists('s:showbreak_save')
+ let &showbreak = s:showbreak_save
+ unlet s:showbreak_save
+ endif
+ if exists('+breakindent')
+ setlocal breakindent<
+ endif
+endfunction
+
+" Toggle copy-friendly linebreak options, using the current setting for the
+" 'linebreak' option as the pivot
+function! copy_linebreak#Toggle() abort
+ if &linebreak
+ call copy_linebreak#Enable()
+ else
+ call copy_linebreak#Disable()
+ endif
+endfunction