feature: simulate emacs' transpose-word feature