Change up to next underscore "_" in vim
ct_ will change up to the underscore and leave it be.
cf_ will change up to the underscore and eat it as well.
Alternatively, you can use set iskeyword-=_ which will make the "_" character a valid word boundary. This might be preferable if you, like me, tend to use ciw more often than just cw.
EDIT: Because iskeyword is how the syntax highlighting is managed, you'll probably notice that for methods/functions that contain keywords the highlighting is strange after playing with this. I found that I like nnoremap <leader>e :set iskeyword-=_<cr>diw:set iskeyword+=_<cr>i as a way to allow me to more easily edit the words I want without messing with the highlighting.