'x', to replace hold buffer with pattern space

This code is now horrid. I think monads/monad transformers will help
here...