aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2022-08-27 17:05:06 -0600
committerJosh Rahm <joshuarahm@gmail.com>2022-08-27 17:05:06 -0600
commit52f035e111cfe766b030d603238b0552453d036c (patch)
tree8646d4524f32c6f5612796344fc83ad8ebdb41cd
parent9fc81bbe8792f8d37efa494428638d4c36844e2b (diff)
downloadfieldmarshal.vim-52f035e111cfe766b030d603238b0552453d036c.tar.gz
fieldmarshal.vim-52f035e111cfe766b030d603238b0552453d036c.tar.bz2
fieldmarshal.vim-52f035e111cfe766b030d603238b0552453d036c.zip
subwords.vim: better organize file better
-rw-r--r--plugin/subwords.vim103
1 files changed, 53 insertions, 50 deletions
diff --git a/plugin/subwords.vim b/plugin/subwords.vim
index 163f97d..a8a38ee 100644
--- a/plugin/subwords.vim
+++ b/plugin/subwords.vim
@@ -17,13 +17,6 @@ if ! exists('g:subwords_include_bindings')
let g:subwords_include_bindings = 1
endif
-if g:subwords_include_bindings
- onoremap <silent> i- <Plug>(inner-sub-word)
- vnoremap <silent> i- <Plug>(inner-sub-word)
- onoremap <silent> a- <Plug>(around-sub-word)
- vnoremap <silent> a- <Plug>(around-sub-word)
-endif
-
" These mappings are the same as above, except prefer_camel is turned off, so
" snake case is used in the case of a conflict.
onoremap <silent> <Plug>(inner-sub-word-prefer-snake) :<c-u>exec "norm " . <sid>v_subword(v:false, v:false)<cr>
@@ -31,13 +24,6 @@ vnoremap <silent> <Plug>(inner-sub-word-prefer-snake) :<c-u>exec "norm " . <sid>
onoremap <silent> <Plug>(around-sub-word-prefer-snake) :<c-u>exec "norm " . <sid>v_subword(v:false, v:true)<cr>
vnoremap <silent> <Plug>(around-sub-word-prefer-snake) :<c-u>exec "norm " . <sid>v_subword(v:false, v:true)<cr>
-if g:subwords_include_bindings
- onoremap <silent> i_ <Plug>(inner-sub-word-prefer-snake)
- vnoremap <silent> i_ <Plug>(inner-sub-wor-prefer-snaked)
- onoremap <silent> a_ <Plug>(around-sub-wor-prefer-snaked)
- vnoremap <silent> a_ <Plug>(around-sub-wor-prefer-snaked)
-endif
-
" Movement keys for subwords. These all have prefer_camel set to true, the idea
" being it's pretty easy to navigate underscores with f_ and t_, but more
" difficult to navigate upper case letters.
@@ -46,48 +32,38 @@ noremap <silent> <Plug>(prev-subword) :<c-u>silent! call <SID>next_subword(v
vnoremap <expr> <silent> <Plug>(next-subword) visualmode() . ":\<c-u>silent! call \<SID>next_subword(visualmode(), v:true)\<cr>m'gv``"
vnoremap <expr> <silent> <Plug>(prev-subword) visualmode() . ":\<c-u>silent! call \<SID>next_subword(visualmode(), v:false)<cr>m'gv``"
-let s:subword_motion = ""
-let s:subword_nosave = 0
-
-if g:subwords_include_bindings
-
- function! s:clear_subword_mark()
- let s:subword_motion = ""
- return ''
- endfunction
-
- function! s:subword_repeat(char)
- if s:subword_motion == ''
- return a:char
- endif
+function! s:clear_subword_mark()
+ let s:subword_motion = ""
+ return ''
+endfunction
- let mot = (s:subword_motion == 'next') != (a:char == ',')
+function! s:subword_repeat(char)
+ if s:subword_motion == ''
+ return a:char
+ endif
- let s:subword_nosave = 1
- if mot
- return "\<Plug>(next-subword)"
- else
- return "\<Plug>(prev-subword)"
- endif
- endfunction
+ let mot = (s:subword_motion == 'next') != (a:char == ',')
- noremap + <Plug>(next-subword)
- vnoremap + <Plug>(next-subword)
- noremap - <Plug>(prev-subword)
- vnoremap - <Plug>(prev-subword)
+ let s:subword_nosave = 1
+ if mot
+ return "\<Plug>(next-subword)"
+ else
+ return "\<Plug>(prev-subword)"
+ endif
+endfunction
- " tetetetetetetete_tetete_tetesasa
+noremap <expr> <silent> <Plug>(subwords-replace-;) <SID>subword_repeat(';')
+noremap <expr> <silent> <Plug>(subwords-replace-,) <SID>subword_repeat(',')
+vnoremap <expr> <silent> <Plug>(subwords-replace-;) <SID>subword_repeat(';')
+vnoremap <expr> <silent> <Plug>(subwords-replace-,) <SID>subword_repeat(',')
- noremap <expr> <silent> ; <SID>subword_repeat(';')
- noremap <expr> <silent> , <SID>subword_repeat(',')
- vnoremap <expr> <silent> ; <SID>subword_repeat(';')
- vnoremap <expr> <silent> , <SID>subword_repeat(',')
+noremap <expr> <silent> <Plug>(subwords-replace-t) <SID>clear_subword_mark() . "t"
+noremap <expr> <silent> <Plug>(subwords-replace-f) <SID>clear_subword_mark() . "f"
+noremap <expr> <silent> <Plug>(subwords-replace-T) <SID>clear_subword_mark() . "T"
+noremap <expr> <silent> <Plug>(subwords-replace-F) <SID>clear_subword_mark() . "F"
- noremap <expr> <silent> t <SID>clear_subword_mark() . "t"
- noremap <expr> <silent> f <SID>clear_subword_mark() . "f"
- noremap <expr> <silent> T <SID>clear_subword_mark() . "T"
- noremap <expr> <silent> F <SID>clear_subword_mark() . "F"
-endif
+let s:subword_motion = ""
+let s:subword_nosave = 0
" Return the type of meta-word (i.e. camelCase, snake_case). If
" a:prefer_camel is set, then a word like ThisIs_A_MixOfCamel_And_Snake will
@@ -243,3 +219,30 @@ function! s:v_subword(prefer_camel, around)
return expr
endfunction!
+
+if g:subwords_include_bindings
+ onoremap <silent> i_ <Plug>(inner-sub-word-prefer-snake)
+ vnoremap <silent> i_ <Plug>(inner-sub-word-prefer-snake)
+ onoremap <silent> a_ <Plug>(around-sub-word-prefer-snaked)
+ vnoremap <silent> a_ <Plug>(around-sub-word-prefer-snaked)
+
+ onoremap <silent> i- <Plug>(inner-sub-word)
+ vnoremap <silent> i- <Plug>(inner-sub-word)
+ onoremap <silent> a- <Plug>(around-sub-word)
+ vnoremap <silent> a- <Plug>(around-sub-word)
+
+ noremap + <Plug>(next-subword)
+ vnoremap + <Plug>(next-subword)
+ noremap - <Plug>(prev-subword)
+ vnoremap - <Plug>(prev-subword)
+
+ noremap <silent> ; <Plug>(subwords-replace-;)
+ noremap <silent> , <Plug>(subwords-replace-,)
+ vnoremap <silent> ; <Plug>(subwords-replace-;)
+ vnoremap <silent> , <Plug>(subwords-replace-,)
+
+ noremap <silent> t <Plug>(subwords-replace-t)
+ noremap <silent> T <Plug>(subwords-replace-T)
+ noremap <silent> f <Plug>(subwords-replace-f)
+ noremap <silent> F <Plug>(subwords-replace-F)
+endif