Created
November 14, 2013 00:12
-
-
Save wellle/7458953 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" pairs | |
for mapmode in [ "o", "x" ] | |
for delimiter in [ "{}", "()", "[]", "<>" ] | |
let opening = delimiter[0] | |
let closing = delimiter[1] | |
for modifier in [ "i", "a" ] | |
for trigger in [ opening, closing ] | |
execute mapmode . "noremap <silent> " . modifier . "n" . trigger . " :<C-U>normal! f" . opening . "v" . modifier . closing . "<CR>" | |
execute mapmode . "noremap <silent> " . modifier . "l" . trigger . " :<C-U>normal! F" . closing . "v" . modifier . opening . "<CR>" | |
endfor | |
endfor | |
endfor | |
" single (text objects like da. delete one dot) | |
for delimiter in [ "_", ".", ":", ",", ";", "<bar>", "/", "<bslash>", "*" ] | |
execute mapmode . "noremap <silent> i" . delimiter . " :<C-U>normal! t" . delimiter . "vT" . delimiter . "<CR>" | |
execute mapmode . "noremap <silent> a" . delimiter . " :<C-U>normal! f" . delimiter . "vT" . delimiter . "<CR>" | |
execute mapmode . "noremap <silent> in" . delimiter . " :<C-U>normal! f" . delimiter . "lvt" . delimiter . "<CR>" | |
execute mapmode . "noremap <silent> an" . delimiter . " :<C-U>normal! f" . delimiter . "lvf" . delimiter . "<CR>" | |
execute mapmode . "noremap <silent> il" . delimiter . " :<C-U>normal! F" . delimiter . "hvT" . delimiter . "<CR>" | |
execute mapmode . "noremap <silent> al" . delimiter . " :<C-U>normal! F" . delimiter . "vT" . delimiter . "<CR>" | |
endfor | |
" double (text objects like dan" delete both quotes) | |
" doesn't handle one surrounding whitespace like da" does | |
for delimiter in [ "\"", "'", "`" ] | |
execute mapmode . "noremap <silent> in" . delimiter . " :<C-U>normal! f" . delimiter . "lvt" . delimiter . "<CR>" | " same as above | |
execute mapmode . "noremap <silent> an" . delimiter . " :<C-U>normal! f" . delimiter . "vf" . delimiter . "<CR>" | " same as above | |
execute mapmode . "noremap <silent> il" . delimiter . " :<C-U>normal! F" . delimiter . "hvT" . delimiter . "<CR>" | |
execute mapmode . "noremap <silent> al" . delimiter . " :<C-U>normal! F" . delimiter . "vF" . delimiter . "<CR>" | |
endfor | |
endfor |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment