Easy text exchange operator for Vim
Switch branches/tags
Nothing to show
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Add option to update indent after exchange May 29, 2015
plugin Omit a count of 1 for mappings Jun 24, 2016
.gitignore Add :help page Dec 7, 2013
README.md Add links to third-party ports in README Jan 27, 2017



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.