Easy text exchange operator for Vim
Vim script
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Easy text exchange operator for Vim.



On the first use, define the first {motion} to exchange. On the second use, define the second {motion} and perform the exchange.


Like cx, but use the current line.


Like cx, but for Visual mode.


Clear any {motion} pending for exchange.

Some notes

  • If you're using the same motion again (e.g. exchanging two words using cxiw), you can use . the second time.
  • If one region is fully contained within the other, it will replace the containing region.


To exchange two words, place your cursor on the first word and type cxiw. Then move to the second word and type cxiw again. Note: the {motion} used in the first and second use of cx don't have to be the same.


Check out these other resources for more information:

Other text editors

Exchange.vim has been ported by third parties to work with Vim emulators in other text editors.


More details and troubleshooting can be found in the Wiki.


If you don't have a preferred installation method, I recommend installing pathogen.vim, and then simply copy and paste:

cd ~/.vim/bundle
git clone git://github.com/tommcdo/vim-exchange.git

Once help tags have been generated, you can view the manual with :help exchange.