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