aboutsummaryrefslogtreecommitdiff
path: root/plugin/charadd.vim
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2022-09-12 15:00:50 -0600
committerJosh Rahm <rahm@google.com>2022-09-12 15:00:50 -0600
commitc055c2f90c7ed43ea61775f08d890a5de34a242e (patch)
tree0009924adfc813c9cae10bdaa32a70097325f64a /plugin/charadd.vim
parent4a2feecd03ce98e247fce5267534775718440c83 (diff)
downloadfieldmarshal.vim-c055c2f90c7ed43ea61775f08d890a5de34a242e.tar.gz
fieldmarshal.vim-c055c2f90c7ed43ea61775f08d890a5de34a242e.tar.bz2
fieldmarshal.vim-c055c2f90c7ed43ea61775f08d890a5de34a242e.zip
put.vim,charadd.vim: add ability to change bindings
Diffstat (limited to 'plugin/charadd.vim')
-rw-r--r--plugin/charadd.vim31
1 files changed, 23 insertions, 8 deletions
diff --git a/plugin/charadd.vim b/plugin/charadd.vim
index b8d25bf..b1d0912 100644
--- a/plugin/charadd.vim
+++ b/plugin/charadd.vim
@@ -12,16 +12,31 @@
" cxx, cXX, cgxx, cgXX to operate on lines.
"
-noremap <silent> cx <cmd>call <sid>set_dir(v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@
-nnoremap <silent> cxx <cmd>call <sid>set_dir(v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@_
-noremap <silent> cX <cmd>call <sid>set_dir(-v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@
-nnoremap <silent> cXX <cmd>call <sid>set_dir(-v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@_
+if !exists('g:charadd_include_bindings')
+ let g:charadd_include_bindings = 1
+endif
+noremap <silent> <Plug>(add-char) <cmd>call <sid>set_dir( v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@
+nnoremap <silent> <Plug>(add-char-line) <cmd>call <sid>set_dir( v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@_
+noremap <silent> <Plug>(sub-char) <cmd>call <sid>set_dir(-v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@
+nnoremap <silent> <Plug>(sub-char-line) <cmd>call <sid>set_dir(-v:count1,0)<bar>set operatorfunc=<sid>charadd<cr>g@_
-noremap <silent> cgx <cmd>call <sid>set_dir(v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@
-nnoremap <silent> cgxx <cmd>call <sid>set_dir(v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@_
-noremap <silent> cgX <cmd>call <sid>set_dir(-v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@
-nnoremap <silent> cgXX <cmd>call <sid>set_dir(-v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@_
+noremap <silent> <Plug>(add-char-all) <cmd>call <sid>set_dir( v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@
+nnoremap <silent> <Plug>(add-char-all-line) <cmd>call <sid>set_dir( v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@_
+noremap <silent> <Plug>(sub-char-all) <cmd>call <sid>set_dir(-v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@
+nnoremap <silent> <Plug>(sub-char-all-line) <cmd>call <sid>set_dir(-v:count1,1)<bar>set operatorfunc=<sid>charadd<cr>g@_
+
+if g:charadd_include_bindings
+ noremap cx <Plug>(add-char)
+ noremap cxx <Plug>(add-char-line)
+ noremap cX <Plug>(sub-char)
+ noremap cXX <Plug>(sub-char-line)
+
+ noremap cgx <Plug>(add-char-all)
+ noremap cgxx <Plug>(add-char-all-line)
+ noremap cgX <Plug>(sub-char-all)
+ noremap cgXX <Plug>(sub-char-all-line)
+endif
let s:dir = 1
let s:incl = 0