vim-exchange/doc/exchange.txt
Tom McDonald 72d9f0a3cf Add "expand" functionality
When one exchange region is completely contained within another,
replace the larger one with the smaller one.

The term "expand" may seem counter-intuitive, as the result is less
text, but think of it this way: the smaller region is "expanding"
to occupy the space previously defined by the larger region.
2014-04-27 10:28:16 -04:00

79 lines
3.0 KiB
Plaintext

*exchange.txt* Plugin to define a text exchange operator
Author: Tom McDonald <http://tommcdo.com>
License: Same terms as Vim itself (see |license|)
This plugin is only available if 'compatible' is not set.
INTRODUCTION *exchange*
This plugin provides |operators| for exchanging text in two places. The main
operator is |cx|, which is used in pairs. Each time it is used, it defines a
region of text to to be exchanged; on the second use, the two defined regions
are exchanged. If one region is fully contained within the other, it replaces
the containing region.
MAPPINGS *exchange-mappings*
*cx* *exchange-define*
cx{motion} Used in pairs.
FIRST USE: define the first region of text to be
exchanged. Any valid {motion} can be used.
SECOND USE: define the second region of text and
perform the exchange.
Note: If a region was defined accidentally, it can
be cleared with |cxc|
*cxx* *exchange-define-line*
cxx Like |cx|, but for the current line. |linewise|
*cxc* *exchange-clear*
cxc Clear any defined region of text (previously defined
by a |cx| command)
*v_X* *exchange-visual*
{visal}X Can be used in |visual-mode|.
EXAMPLES *exchange-examples*
In the text below, we will exchange everything inside the parentheses with
everything inside the double quotes.
Tom "a Vim plugin developer" McDonald (The Dev)
First, place your cursor somewhere inside the quoted string and type `cxi"`.
Then move your cursor to somewhere inside the parentheses and type `cxi)`. The
text will the be changed to:
Tom "The Dev" McDonald (a Vim plugin developer)
It should be noted that I don't actually go by that nickname.
SETTINGS *exchange-settings*
To change the default mappings, simply provide your own mappings to the
commands below. The default mappings are as follows:
nmap cx <Plug>(Exchange)
vmap cx <Plug>(Exchange)
nmap cxc <Plug>(ExchangeClear)
nmap cxx <Plug>(ExchangeLine)
For example, to change the mapping for exchanging a line, use the following:
nmap cX <Plug>(ExchangeLine)
This will use the mapping `cX`, and the default `cxx` will not be mapped.
*g:exchange_no_mappings*
g:exchange_no_mappings ~
If this variable is defined, the default mappings will not be created.
ISSUES AND TODO *exchange-issues*
*exchange-todo*
See https://github.com/tommcdo/vim-exchange/issues for bugs and issues.
vim:tw=78:ts=8:ft=help:norl: