Set the $EDITOR variable too for your unprivileged user, in his $USER/.bash_profile. Because that environment stays if you run "su" instead of "su -" or "su -l root". /etc/profile or an own file in /etc/profile.d/ is the place to set such a variable system wide for all users.
I have it identically defined in both ~/.bash_profile and ~root/.bash_profile. That's what's mysterious. The variable loses my mortal definition if I neglect to use -l on su. (And of course gets root's definition if use -l.) I'm suspecting that some "helpful" script is cleaning the environment when I su, presumably as a security measure.