diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2022-08-27 17:05:06 -0600 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2022-08-27 17:05:06 -0600 |
commit | 52f035e111cfe766b030d603238b0552453d036c (patch) | |
tree | 8646d4524f32c6f5612796344fc83ad8ebdb41cd | |
parent | 9fc81bbe8792f8d37efa494428638d4c36844e2b (diff) | |
download | fieldmarshal.vim-52f035e111cfe766b030d603238b0552453d036c.tar.gz fieldmarshal.vim-52f035e111cfe766b030d603238b0552453d036c.tar.bz2 fieldmarshal.vim-52f035e111cfe766b030d603238b0552453d036c.zip |
subwords.vim: better organize file better
-rw-r--r-- | plugin/subwords.vim | 103 |
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 |