Word navigation when underscores are in the word
Phil Capel posted a til recently that talked about using the _ character as a word boundary by removing it from the iskeyword list with:
:se iskeyword-=_
So now w navigates to the next underscore in long_id_for_var and you can copy long with yiw when your cursor is on long.
My addendum to this is that navigating with W will still go to the next space separated word, B will go the beginning of the previous space separated word, and if your cursor is on long, yiW will copy long_if_for_var.