aboutsummaryrefslogtreecommitdiff
path: root/vim/plugin
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2017-11-04 02:51:50 +1300
committerTom Ryder <tom@sanctum.geek.nz>2017-11-04 02:51:50 +1300
commitbfec788882cba3b6711d42c747960784daec012c (patch)
tree85233354da7d2152ebd7fc914bfa02b8c3a387f5 /vim/plugin
parentSpin stable join config out into new plugin (diff)
downloaddotfiles-bfec788882cba3b6711d42c747960784daec012c.tar.gz
dotfiles-bfec788882cba3b6711d42c747960784daec012c.zip
Spin copyable linebreak config into new plugin
Calling this one copy_linebreak.vim. Renamed both the internal function and the plugin key.
Diffstat (limited to 'vim/plugin')
-rw-r--r--vim/plugin/copy_linebreak.vim36
1 files changed, 36 insertions, 0 deletions
diff --git a/vim/plugin/copy_linebreak.vim b/vim/plugin/copy_linebreak.vim
new file mode 100644
index 00000000..ac21b66d
--- /dev/null
+++ b/vim/plugin/copy_linebreak.vim
@@ -0,0 +1,36 @@
+"
+" 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.
+"
+" Suggested mapping: <leader>b
+"
+if has('eval')
+
+ " Define function
+ function! s:CopyLinebreak()
+
+ " If linebreak is on, turn it off
+ if &l:linebreak
+ setlocal nolinebreak linebreak?
+ setlocal showbreak=
+ if exists('&breakindent')
+ setlocal nobreakindent
+ endif
+
+ " If it's off, turn it on
+ else
+ setlocal linebreak linebreak?
+ setlocal showbreak<
+ if exists('&breakindent')
+ setlocal breakindent
+ endif
+ endif
+
+ endfunction
+
+ " Provide mapping proxy to the function just defined
+ " Suggested mapping: <leader>b
+ noremap <Plug>CopyLinebreak
+ \ :<C-U>call <SID>CopyLinebreak()<CR>
+endif