It may depend largely on your web-dev framework. If it's just raw
HTML/CSS/jQuery, I'd likely just have the files checked out of
revision control (you are planning to use revision control, right?)
and edit them, refreshing the browser in another window as-needed.
I happen to do my web development in the Python framework Django
which offers a development server that notices most changes and
automatically refreshes, making development almost as easy as the
static-file method. I just have one terminal in which I've got my
development server (I can look over there for debugging output as
well), one terminal/window running Vim, and one window for my
browser which I can refresh as-needed. I don't know Rails, but I
think it offers a similar dev-server for testing locally.
For things like PHP or other languages, I'd advise setting up a
local PHP server (whether Apache, nginx, etc) and then every time I
save to the local PHP project's directory, refresh against the local
server.
That said, once I have things working on my local machine, the good
version gets checked into source control. I happen to use git, but
would also recommend Bazaar or Mercurial; so I've been
check-pointing all along into a "development" branch, and then merge
the good version into the "master" release branch. I can then
manually (or automatically, if I've set up some
continuous-integration machine to test/deploy) perform a checkout of
the release branch on the actual server to pull down all the latest
updates without releasing intermediate versions.
So the setup is
- one terminal/window for Vim
- one terminal/window for administrative/VCS stuff
- one window for the browser
- optionally a window for your dev-server if needed
Occasionally, I'll multiplex the 3 terminal windows with "screen"
(others use tmux) into one actual terminal window.
-tim