It's a fascinating problem, where many different solutions have to work together. Different technologies fit better than others in different applications. So overnight-charged battery vehicles actually fit very well for the "short commute around town" problem, but are obviously much less suited to longer journeys.
We will also have different stages as the costs of technologies come down and the cost and availability of oil goes up. We might break it down (very roughly) into 1. "while we still have oil" and 2. "now we really don't have enough that's readily accessible":
In 1. (as we are seeing now), it's all about efficiency and doing the best with what resource we have remaining, hence the recent drive towards more efficient engines and the introduction of hybrids.
In 2. it's more about big changes in technology, infrastructure and human mentality as we get used to new energy vectors dominating.
Ideally, phase 1 tides us over while the required changes for phase 2 are developed and put in place. In reality, it'll be hugely more messy than that.
An interesting aside about how battery cars might fit in: Renewable energy is by nature very variable, and the peaks of production and demand very rarely match up, so vast amounts of energy storage will be required (and soon!) to smooth out the supply. Now imagine there is a large fleet of electric vehicles, a reasonable proportion of which are plugged in in their garages at any one time. Hey presto, we have an excellent distributed energy storage system, where electricity can be fed back into the grid at peak demand times. Obviously the specifics are a bit more complicated, but the potential is definitely there.
Another fascinating transport model envisions a move away from "I own my vehicle" to "I hire a vehicle from a large fleet when I need it" - combine that with the self-driving technology that's already becoming a reality, and you have a potentially brilliant commuter scheme, especially if businesses were to allow a little more flexibility in start and end times of the working day to optimise use of the fleet.