GVim rocks. It’s lightweight, it’s got wicked great support for regex work, it’s loaded with numerous features that really speed editing work, and you have to type “:q” from within the editor to quit. It doesn’t get better than that.
Wait, it does: There’s a handy XML editing plugin for Vim based off the xml.vim file which ships with Vim. The extension provides a number of additional features like tag folding, joining tags, changing tags, and my current favorite: adding a tag to a block or tag.
I’m having to do some cleanup of badly balanced, badly written HTML which will be formatted to XML. There are a number of instances where a particular tagset should be surrounded by a list item tag (<li>) but isn’t. The tag surround feature comes in very handy for that since I can quickly get some cleanup with just a few keystrokes.
(I’ve looked at writing some XPath code to handle this, but that would actually take longer in this case…)