Custom Text Objects¶
The following snippet of vimscript (if I’m reading it right) will create 26(!) custom text objects
for char in [‘_’, ‘.’, ‘:’, ‘,’, ‘;’, ‘<bar>’, ‘/‘, ‘<bslash>’, ‘*’, ‘+’, ‘%’, ‘-‘, ‘#’]
execute ‘xnoremap i’ . char . ‘:<C-u>normal! T’ . char . ‘vt’ . char . ‘<CR>’
execute ‘onoremap i’ . char . ‘:normal vi’ . char . ‘<CR>’
execute ‘xnoremap a’ . char . ‘:<C-u>normal! F’ . char . ‘vt’ . char . ‘<CR>’
execute ‘onoremap a’ . char . ‘:normal va’ . char . ‘<CR>’
endfor