" line text-objects xnoremap il g_o^ onoremap il :normal vil xnoremap al $o0 onoremap al :normal val " buffer text-objects " ------------------- " i% a% xnoremap i% :let z = @/\|1;/^./kzG??:let @/ = zV'z onoremap i% :normal vi% xnoremap a% GoggV onoremap a% :normal va% " comment text-objects " -------------------- " i? a? xnoremap i? ?/\*o/\*\/ onoremap i? :normal vi? " square brackets text-objects " ---------------------------- " ir ar xnoremap ir i[ xnoremap ar a[ onoremap ir :normal vi[ onoremap ar :normal va[