2013-12-05 10:35:30 -05:00
|
|
|
exchange.vim
|
2013-12-05 10:29:17 -05:00
|
|
|
============
|
|
|
|
|
2013-12-05 12:51:05 -05:00
|
|
|
Easy text exchange operator for Vim.
|
2013-12-05 10:35:30 -05:00
|
|
|
|
|
|
|
Mappings
|
|
|
|
--------
|
|
|
|
|
|
|
|
`cx`
|
|
|
|
|
2013-12-09 13:44:57 -05:00
|
|
|
On the first use, define the first {motion} to exchange. On the second use,
|
|
|
|
define the second {motion} and perform the exchange.
|
2013-12-05 10:35:30 -05:00
|
|
|
|
2013-12-09 20:59:35 -05:00
|
|
|
`cxx`
|
|
|
|
|
|
|
|
Like `cx`, but use the current line.
|
|
|
|
|
2013-12-05 10:35:30 -05:00
|
|
|
`cxc`
|
|
|
|
|
|
|
|
Clear any {motion} pending for exchange.
|
|
|
|
|
2013-12-10 22:11:40 -05:00
|
|
|
### Notes about the mappings
|
|
|
|
|
|
|
|
* `cx` can also be used from visual mode, which is sometimes easier than coming
|
|
|
|
up with the right {motion}
|
|
|
|
* If you're using the same motion again (e.g. exchanging two words using
|
|
|
|
`cxiw`), you can use `.` the second time.
|
|
|
|
|
2013-12-05 10:35:30 -05:00
|
|
|
Example
|
|
|
|
-------
|
|
|
|
|
2013-12-09 13:44:57 -05:00
|
|
|
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.
|
2013-12-09 13:45:11 -05:00
|
|
|
|
2013-12-21 23:23:06 -05:00
|
|
|
Caveats
|
|
|
|
-------
|
|
|
|
|
|
|
|
### Visual mapping causes delay for change operator
|
|
|
|
|
|
|
|
As noted in [Issue #11][iss11], the visual mapping for `cx` can cause a delay
|
|
|
|
if you want to use `c` from visual mode. This is because Vim is waiting for a
|
|
|
|
delay (specified by `'timeoutlen'`) before using the `c` command instead of
|
|
|
|
using `cx`. For more details, see [:help 'timeoutlen'][timeoutlen].
|
|
|
|
|
|
|
|
There are two potential solutions for this.
|
|
|
|
|
|
|
|
#### Changing timeout length
|
|
|
|
|
|
|
|
Set `'timeoutlen'` to a smaller value so that the delay is less noticeable.
|
|
|
|
|
|
|
|
set timeoutlen=250
|
|
|
|
|
|
|
|
#### Changing default visual mapping
|
|
|
|
|
|
|
|
Change the default visual mapping to something that doesn't begin with `c` (or
|
|
|
|
any other existing operator).
|
|
|
|
|
2013-12-22 10:05:38 -05:00
|
|
|
vmap <Leader>cx <Plug>(Exchange)
|
2013-12-21 23:23:06 -05:00
|
|
|
|
|
|
|
[iss11]: https://github.com/tommcdo/vim-exchange/issues/11
|
|
|
|
[timeoutlen]: http://vimdoc.sourceforge.net/htmldoc/options.html#'timeoutlen'
|
|
|
|
|
2013-12-09 13:45:11 -05:00
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
|
|
|
If you don't have a preferred installation method, I recommend
|
|
|
|
installing [pathogen.vim](https://github.com/tpope/vim-pathogen), 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`.
|