Adding new stuff
This commit is contained in:
parent
1f2c9e448a
commit
44142239cd
40 changed files with 16241 additions and 11 deletions
743
vim-plugins/bundle/targets.vim/README.md
Normal file
743
vim-plugins/bundle/targets.vim/README.md
Normal file
|
|
@ -0,0 +1,743 @@
|
|||
## Introduction
|
||||
|
||||
**Targets.vim** is a Vim plugin that adds various [text objects][textobjects]
|
||||
to give you more targets to [operate][operator] on. It expands on the idea of
|
||||
simple commands like `di'` (delete inside the single quotes around the cursor)
|
||||
to give you more opportunities to craft powerful commands that can be
|
||||
[repeated][repeat] reliably. One major goal is to handle all corner cases
|
||||
correctly.
|
||||
|
||||
## Examples
|
||||
|
||||
The following examples are displayed as three lines each. The top line denotes
|
||||
cursor positions from where the presented command works. The middle line shows
|
||||
the contents of the example line that we're working on. The last line shows the
|
||||
part of the line that the command will operate on.
|
||||
|
||||
To change the text in the next pair of parentheses, use the `cin)` command
|
||||
|
||||
```
|
||||
cursor position │ .....................
|
||||
buffer line │ This is example text (with a pair of parentheses).
|
||||
selection │ └───────── cin) ─────────┘
|
||||
```
|
||||
|
||||
To delete the item in a comma separated list under the cursor, use `da,`
|
||||
|
||||
```
|
||||
cursor position │ .........
|
||||
buffer line │ Shopping list: oranges, apples, bananas, tomatoes
|
||||
selection │ └─ da, ─┘
|
||||
```
|
||||
|
||||
Notice how the selection includes exactly one of the surrounding commas to
|
||||
leave a proper comma separated list behind.
|
||||
|
||||
## Overview
|
||||
|
||||
We distinguish between four kinds of text objects that behave slightly
|
||||
differently:
|
||||
|
||||
- Pair text objects
|
||||
- Quote text objects
|
||||
- Separator text objects
|
||||
- Argument text objects
|
||||
|
||||
## Pair Text Objects
|
||||
|
||||
These text objects are similar to the built in text objects such as `i)`.
|
||||
Supported trigger characters:
|
||||
|
||||
- `(` `)` `b` (work on parentheses)
|
||||
- `{` `}` `B` (work on curly braces)
|
||||
- `[` `]` (work on square brackets)
|
||||
- `<` `>` (work on angle brackets)
|
||||
- `t` (work on tags)
|
||||
|
||||
Pair text objects work over multiple lines and support seeking. See below for
|
||||
details about seeking.
|
||||
|
||||
The following examples will use parentheses, but they all work for each listed
|
||||
trigger character accordingly.
|
||||
|
||||
#### In Pair
|
||||
|
||||
`i( i) ib i{ i} iB i[ i] i< i> it`
|
||||
|
||||
- Select inside of pair characters.
|
||||
- This overrides Vim's default text object to allow seeking for the next pair
|
||||
in the current line to the right or left when the cursor is not inside a
|
||||
pair. This behavior is similar to Vim's seeking behavior of `di'` when not
|
||||
inside of quotes, but it works both ways.
|
||||
- Accepts a count to select multiple blocks.
|
||||
|
||||
```
|
||||
............
|
||||
a ( b ( cccccccc ) d ) e
|
||||
│ └── i) ──┘ │
|
||||
└───── 2i) ──────┘
|
||||
```
|
||||
|
||||
#### A Pair
|
||||
|
||||
`a( a) ab a{ a} aB a[ a] a< a> at`
|
||||
|
||||
- Select a pair including pair characters.
|
||||
- Overrides Vim's default text object to allow seeking.
|
||||
- Accepts a count.
|
||||
|
||||
```
|
||||
............
|
||||
a ( b ( cccccccc ) d ) e
|
||||
│ └─── a) ───┘ │
|
||||
└────── 2a) ───────┘
|
||||
```
|
||||
|
||||
#### Inside Pair
|
||||
|
||||
`I( I) Ib I{ I} IB I[ I] I< I> It`
|
||||
|
||||
- Select contents of pair characters.
|
||||
- Like inside of parentheses, but exclude whitespace at both ends. Useful for
|
||||
changing contents while preserving spacing.
|
||||
- Accepts a count.
|
||||
|
||||
```
|
||||
............
|
||||
a ( b ( cccccccc ) d ) e
|
||||
│ └─ I) ─┘ │
|
||||
└──── 2I) ─────┘
|
||||
```
|
||||
|
||||
#### Around Pair
|
||||
|
||||
`A( A) Ab A{ A} AB A[ A] A< A> At`
|
||||
|
||||
- Select around pair characters.
|
||||
- Like a pair, but include whitespace at one side of the pair. Prefers to
|
||||
select trailing whitespace, falls back to select leading whitespace.
|
||||
- Accepts a count.
|
||||
|
||||
```
|
||||
............
|
||||
a ( b ( cccccccc ) d ) e
|
||||
│ └─── A) ────┘ │
|
||||
└────── 2A) ────────┘
|
||||
```
|
||||
|
||||
### Next and Last Pair
|
||||
|
||||
`in( an( In( An( il( al( Il( Al( ...`
|
||||
|
||||
Work directly on distant pairs without moving there separately.
|
||||
|
||||
All the above pair text objects can be shifted to the next pair by
|
||||
including the letter `n`. The command `in)` selects inside of the next
|
||||
pair. Use the letter `l` instead to work on the previous (last) pair. Uses
|
||||
a count to skip multiple pairs. Skipping works over multiple lines.
|
||||
|
||||
See our [Cheat Sheet][cheatsheet] for two charts summarizing all pair mappings.
|
||||
|
||||
### Pair Seek
|
||||
|
||||
If any of the normal pair commands (not containing `n` or `l`) is executed when
|
||||
the cursor is not positioned inside a pair, it seeks for pairs before or after
|
||||
the cursor by searching for the appropriate delimiter on the current line. This
|
||||
is similar to using the explicit version containing `n` or `l`, but in only
|
||||
seeks on the current line.
|
||||
|
||||
## Quote Text Objects
|
||||
|
||||
These text objects are similar to the built in text objects such as `i'`.
|
||||
Supported trigger characters:
|
||||
|
||||
- `'` (work on single quotes)
|
||||
- `"` (work on double quotes)
|
||||
- `` ` `` (work on back ticks)
|
||||
|
||||
These quote text objects try to be smarter than the default ones. They count
|
||||
the quotation marks from the beginning of the line to decide which of these are
|
||||
the beginning of a quote and which ones are the end.
|
||||
|
||||
If you type `ci"` on the `,` in the example below, it will automatically skip
|
||||
and change `world` instead of changing `,` between `hello` and `world`.
|
||||
|
||||
```
|
||||
buffer │ join("hello", "world")
|
||||
proper │ └─────┘ └─────┘
|
||||
false │ └──┘
|
||||
```
|
||||
|
||||
Quote text objects work over multiple lines and support seeking. See below for
|
||||
details about seeking.
|
||||
|
||||
The following examples will use single quotes, but they all work for each
|
||||
mentioned separator character accordingly.
|
||||
|
||||
#### In Quote
|
||||
|
||||
`` i' i" i` ``
|
||||
|
||||
- Select inside quote.
|
||||
- This overrides Vim's default text object to allow seeking in both directions.
|
||||
|
||||
```
|
||||
............
|
||||
a ' bbbbbbbb ' c ' d ' e
|
||||
└── i' ──┘
|
||||
```
|
||||
|
||||
#### A Quote
|
||||
|
||||
``a' a" a` ``
|
||||
|
||||
- Select a quote.
|
||||
- This overrides Vim's default text object to support seeking.
|
||||
- Unlike Vim's quote text objects, this incudes no surrounding whitespace.
|
||||
|
||||
```
|
||||
............
|
||||
a ' bbbbbbbb ' c ' d ' e
|
||||
└─── a' ───┘
|
||||
```
|
||||
|
||||
#### Inside Quote
|
||||
|
||||
``I' I" I` ``
|
||||
|
||||
- Select contents of a quote.
|
||||
- Like inside quote, but exclude whitespace at both ends. Useful for changing
|
||||
contents while preserving spacing.
|
||||
|
||||
```
|
||||
............
|
||||
a ' bbbbbbbb ' c ' d ' e
|
||||
└─ I' ─┘
|
||||
```
|
||||
|
||||
#### Around Quote
|
||||
|
||||
``A' A" A` ``
|
||||
|
||||
- Select around a quote.
|
||||
- Like a quote, but include whitespace in one direction. Prefers to select
|
||||
trailing whitespace, falls back to select leading whitespace.
|
||||
|
||||
```
|
||||
............
|
||||
a ' bbbbbbbb ' c ' d ' e
|
||||
└─── A' ────┘
|
||||
```
|
||||
|
||||
### Next and Last Quote
|
||||
|
||||
`in' In' An' il' Il' Al' iN' IN' AN' iL' IL' AL' ...`
|
||||
|
||||
Work directly on distant quotes without moving there separately.
|
||||
|
||||
All the above pair text objects can be shifted to the next quote by
|
||||
including the letter `n`. The command `in'` selects inside of the next
|
||||
single quotes. Use the letter `l` instead to work on the previous (last)
|
||||
quote. Uses a count to skip multiple quotation characters.
|
||||
|
||||
Use uppercase `N` and `L` to jump from within one quote into the next
|
||||
proper quote, instead of into the pseudo quote in between. (Using `N`
|
||||
instead of `n` is actually just doubling the count to achieve this.)
|
||||
|
||||
See our [Cheat Sheet][cheatsheet] for a chart summarizing all quote mappings.
|
||||
|
||||
### Quote Seek
|
||||
|
||||
If any of the normal quote commands (not containing `n`, `l`, `N` or `L`) is
|
||||
executed when the cursor is not positioned inside a quote, it seeks for quotes
|
||||
before or after the cursor by searching for the appropriate delimiter on the
|
||||
current line. This is similar to using the explicit version containing `n` or
|
||||
`l`.
|
||||
|
||||
## Separator Text Objects
|
||||
|
||||
These text objects are based on single separator characters like the comma in
|
||||
one of our examples above. The text between two instances of the separator
|
||||
character can be operated on with these targets.
|
||||
|
||||
Supported separators:
|
||||
|
||||
```
|
||||
, . ; : + - = ~ _ * # / | \ & $
|
||||
```
|
||||
|
||||
Separator text objects work over multiple lines and support seeking.
|
||||
|
||||
The following examples will use commas, but they all work for each listed
|
||||
separator character accordingly.
|
||||
|
||||
#### In Separator
|
||||
|
||||
`i, i. i; i: i+ i- i= i~ i_ i* i# i/ i| i\ i& i$`
|
||||
|
||||
- Select inside separators. Similar to in quote.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b , cccccccc , d , e
|
||||
└── i, ──┘
|
||||
```
|
||||
|
||||
#### A Separator
|
||||
|
||||
`a, a. a; a: a+ a- a= a~ a_ a* a# a/ a| a\ a& a$`
|
||||
|
||||
- Select an item in a list separated by the separator character.
|
||||
- Includes the leading separator, but excludes the trailing one. This leaves
|
||||
a proper list separated by the separator character after deletion. See the
|
||||
examples above.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b , cccccccc , d , e
|
||||
└─── a, ──┘
|
||||
```
|
||||
|
||||
#### Inside Separator
|
||||
|
||||
`I, I. I; I: I+ I- I= I~ I_ I* I# I/ I| I\ I& I$`
|
||||
|
||||
- Select contents between separators.
|
||||
- Like inside separators, but exclude whitespace at both ends. Useful for
|
||||
changing contents while preserving spacing.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b , cccccccc , d , e
|
||||
└─ I, ─┘
|
||||
```
|
||||
|
||||
#### Around Separator
|
||||
|
||||
`A, A. A; A: A+ A- A= A~ A_ A* A# A/ A| A\ A& A$`
|
||||
|
||||
- Select around a pair of separators.
|
||||
- Includes both separators and a surrounding whitespace, similar to `a'` and
|
||||
`A(`.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b , cccccccc , d , e
|
||||
└─── A, ────┘
|
||||
```
|
||||
|
||||
### Next and Last Separator
|
||||
|
||||
`in, an, In, An, il, al, Il, Al, iN, aN, IN, AN, iL, aL, IL, AL, ...`
|
||||
|
||||
Work directly on distant separators without moving there separately.
|
||||
|
||||
All the above separator text objects can be shifted to the next separator by
|
||||
including the letter `n`. The command `in,` selects inside of the next commas.
|
||||
Use the letter `l` instead to work on the previous (last) separators. Uses the
|
||||
count to skip multiple separator characters.
|
||||
|
||||
Use uppercase `N` and `L` to jump from within one pair of separators into
|
||||
the next distinct pair, instead of into the adjacent one. (Using `N`
|
||||
instead of `n` is actually just doubling the count to achieve this.)
|
||||
|
||||
See our [Cheat Sheet][cheatsheet] for a chart summarizing all separator mappings.
|
||||
|
||||
### Separator Seek
|
||||
|
||||
Like quote seeking. If any of the normal separator commands (not
|
||||
containing `n` or `l`) is executed when the cursor is not positioned inside a
|
||||
pair of separators, it seeks for the separator before or after the cursor.
|
||||
This is similar to using the explicit version containing `n` or `l`.
|
||||
|
||||
## Argument Text Objects
|
||||
|
||||
These text objects are similar to separator text objects, but are specialized
|
||||
for arguments surrounded by braces and commas. They also take matching braces
|
||||
into account to capture only valid arguments.
|
||||
|
||||
Argument text objects work over multiple lines and support seeking.
|
||||
|
||||
#### In Argument
|
||||
|
||||
`ia`
|
||||
|
||||
- Select inside arguments. Similar to in quote.
|
||||
- Accepts a count.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b ( cccccccc , d ) e
|
||||
└── ia ──┘
|
||||
```
|
||||
|
||||
#### An Argument
|
||||
|
||||
`aa`
|
||||
|
||||
- Select an argument in a list of arguments.
|
||||
- Includes a separator if preset, but excludes surrounding braces. This leaves
|
||||
a proper argument list after deletion.
|
||||
- Accepts a count.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b ( cccccccc , d ) e
|
||||
└─── aa ──┘
|
||||
```
|
||||
|
||||
#### Inside Argument
|
||||
|
||||
`Ia`
|
||||
|
||||
- Select content of an argument.
|
||||
- Like inside separators, but exclude whitespace at both ends. Useful for
|
||||
changing contents while preserving spacing.
|
||||
- Accepts a count.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b ( cccccccc , d ) e
|
||||
└─ Ia ─┘
|
||||
```
|
||||
|
||||
#### Around Argument
|
||||
|
||||
`Aa`
|
||||
|
||||
- Select around an argument.
|
||||
- Includes both delimiters and a surrounding whitespace, similar to `a'` and
|
||||
`A(`.
|
||||
- Accepts a count.
|
||||
|
||||
```
|
||||
...........
|
||||
a , b ( cccccccc , d ) e
|
||||
└─── Aa ────┘
|
||||
```
|
||||
|
||||
### Next and Last Argument
|
||||
|
||||
`ina ana Ina Ana ila ala Ila Ala`
|
||||
|
||||
Work directly on distant arguments without moving there separately.
|
||||
|
||||
All the above argument text objects can be shifted to the next argument by
|
||||
including the letter `n`. The command `ina` selects inside of the next
|
||||
argument. Use the letter `l` instead to work on the previous (last) argument.
|
||||
Uses a [count] to skip multiple argument characters. The order is determined by
|
||||
the nearest surrounding argument delimiter.
|
||||
|
||||
See our [Cheat Sheet][cheatsheet] for a chart summarizing all argument mappings.
|
||||
|
||||
### Argument Seek
|
||||
|
||||
Like separator seeking. If any of the normal argument commands (not containing
|
||||
`n` or `l`) is executed when the cursor is not positioned inside an argument,
|
||||
it seeks for the argument before or after the cursor. This is similar to using
|
||||
the explicit version containing `n` or `l`.
|
||||
|
||||
## Installation
|
||||
|
||||
Use your favorite plugin manager.
|
||||
|
||||
- [NeoBundle][neobundle]
|
||||
|
||||
```vim
|
||||
NeoBundle 'wellle/targets.vim'
|
||||
```
|
||||
|
||||
- [Vundle][vundle]
|
||||
|
||||
```vim
|
||||
Bundle 'wellle/targets.vim'
|
||||
```
|
||||
|
||||
- [Vim-plug][vim-plug]
|
||||
|
||||
```vim
|
||||
Plug 'wellle/targets.vim'
|
||||
```
|
||||
|
||||
- [Pathogen][pathogen]
|
||||
|
||||
```sh
|
||||
git clone git://github.com/wellle/targets.vim.git ~/.vim/bundle/targets.vim
|
||||
```
|
||||
|
||||
## Settings
|
||||
|
||||
Put these variables into your vimrc to customize the mappings described above.
|
||||
The provided examples also indicate the default values.
|
||||
|
||||
Available options:
|
||||
|
||||
```vim
|
||||
g:targets_aiAI
|
||||
g:targets_nlNL
|
||||
g:targets_pairs
|
||||
g:targets_quotes
|
||||
g:targets_separators
|
||||
g:targets_tagTrigger
|
||||
g:targets_argTrigger
|
||||
g:targets_argOpening
|
||||
g:targets_argClosing
|
||||
g:targets_argSeparator
|
||||
g:targets_seekRanges
|
||||
g:targets_jumpRanges
|
||||
```
|
||||
|
||||
### g:targets_aiAI
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_aiAI = 'aiAI'
|
||||
```
|
||||
|
||||
Controls the normal mode operator mode maps that get created for In Pair (`i`),
|
||||
A Pair (`a`), Inside Pair (`I`), and Around Pair (`A`). Required to be a 4
|
||||
character long list. Use a space to deactivate a mode.
|
||||
|
||||
### g:targets_nlNL
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_nlNL = 'nlNL'
|
||||
```
|
||||
|
||||
Controls the keys used in maps for seeking next and last text objects. For
|
||||
example, if you don't wish to use the `N` and `L` seeks, and instead wish for
|
||||
`n` to always search for the next object and `N` to search for the last, you
|
||||
could set:
|
||||
|
||||
```vim
|
||||
let g:targets_nlNL = 'nN '
|
||||
```
|
||||
|
||||
Note that two extra spaces are still required on the end, indicating you wish
|
||||
to disable the default functionality of `N` and `L`. Required to be a 4
|
||||
character long list.
|
||||
|
||||
### g:targets_pairs
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_pairs = '()b {}B [] <>'
|
||||
```
|
||||
|
||||
Defines the space separated list of pair objects you wish to use, along with
|
||||
optional one letter aliases for them.
|
||||
|
||||
### g:targets_quotes
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_quotes = '" '' `'
|
||||
```
|
||||
|
||||
Defines the space separated list of quoting objects you wish to use. Note that
|
||||
you have to escape the single quote by doubling it. Quote objects can
|
||||
optionally be followed by a single one letter alias. For example, to set `d`
|
||||
as an alias for double quotes, allowing such commands as `cid` to be
|
||||
equivalent to `ci"`, you could define:
|
||||
|
||||
```vim
|
||||
let g:targets_quotes = '"d '' `'
|
||||
```
|
||||
|
||||
### g:targets_separators
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_separators = ', . ; : + - = ~ _ * # / | \ & $'
|
||||
```
|
||||
|
||||
Defines the space separated list of separator objects you wish to use. Like
|
||||
quote objects, separator objects can optionally be followed by a single one
|
||||
letter alias. To set `c` as an alias for comma, allowing such commands as
|
||||
`dic` to be equivalent to `di,`, you could define:
|
||||
|
||||
```vim
|
||||
let g:targets_separators = ',c . ; : + - = ~ _ * # / | \ & $'
|
||||
```
|
||||
|
||||
### g:targets_tagTrigger
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_tagTrigger = 't'
|
||||
```
|
||||
|
||||
Defines the key you need to press to operate on tag text objects.
|
||||
|
||||
### g:targets_argTrigger
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_argTrigger = 'a'
|
||||
```
|
||||
|
||||
Defines the key you need to press to operate on arguments. To use `,` as
|
||||
argument trigger, allowing commands as `da,` to act like `daa`, use this:
|
||||
|
||||
```vim
|
||||
let g:targets_argTrigger = ','
|
||||
```
|
||||
|
||||
### g:targets_argOpening and g:targets_argClosing
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_argOpening = '[([]'
|
||||
let g:targets_argClosing = '[])]'
|
||||
```
|
||||
|
||||
Defines regular expressions that match the beginning and closing delimiter of
|
||||
an argument list respectively. If you also want to find arguments delimited by
|
||||
curly braces, try this:
|
||||
|
||||
```vim
|
||||
let g:targets_argOpening = '[({[]'
|
||||
let g:targets_argClosing = '[]})]'
|
||||
```
|
||||
|
||||
### g:targets_argSeparator
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_argSeparator = ','
|
||||
```
|
||||
|
||||
Defines a regular expression matching separators in an argument list. If you
|
||||
also want to find arguments separated by semicolon, use this:
|
||||
|
||||
```vim
|
||||
let g:targets_argSeparator = '[,;]'
|
||||
```
|
||||
|
||||
### g:targets_seekRanges
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_seekRanges = 'cr cb cB lc ac Ac lr rr ll lb ar ab lB Ar aB Ab AB rb al rB Al bb aa bB Aa BB AA'
|
||||
```
|
||||
|
||||
Defines a priority ordered, space separated list of range types which can be
|
||||
used to customize seeking behavior.
|
||||
|
||||
The default setting generally prefers targets around the cursor, with one
|
||||
exception: If the target around the cursor is not contained in the current
|
||||
cursor line, but the next or last target are, then prefer those. Targets
|
||||
beginning or ending on the cursor are preferred over everything else.
|
||||
|
||||
Some other useful example settings:
|
||||
|
||||
Prefer multiline targets around cursor over distant targets within cursor line:
|
||||
```vim
|
||||
let g:targets_seekRanges = 'cr cb cB lc ac Ac lr lb ar ab lB Ar aB Ab AB rr ll rb al rB Al bb aa bB Aa BB AA'
|
||||
```
|
||||
|
||||
Never seek backwards:
|
||||
```vim
|
||||
let g:targets_seekRanges = 'cr cb cB lc ac Ac lr rr lb ar ab lB Ar aB Ab AB rb rB bb bB BB'
|
||||
```
|
||||
|
||||
Only seek if next/last targets touch current line:
|
||||
```vim
|
||||
let g:targets_seekRanges = 'cr cb cB lc ac Ac lr rr ll lb ar ab lB Ar aB Ab AB rb rB al Al'
|
||||
```
|
||||
|
||||
Only consider targets fully visible on screen:
|
||||
```vim
|
||||
let g:targets_seekRanges = 'cr cb cB lc ac Ac lr lb ar ab rr rb bb ll al aa'
|
||||
```
|
||||
|
||||
Only consider targets around cursor:
|
||||
```vim
|
||||
let g:targets_seekRanges = 'cr cb cB lc ac Ac lr lb ar ab lB Ar aB Ab AB'
|
||||
```
|
||||
|
||||
Only consider targets fully contained in current line:
|
||||
```vim
|
||||
let g:targets_seekRanges = 'cr cb cB lc ac Ac lr rr ll'
|
||||
```
|
||||
|
||||
If you want to build your own, or are just curious what those cryptic letters
|
||||
mean, check out the full documentation in our [Cheat Sheet][cheatsheet].
|
||||
|
||||
### g:targets_jumpRanges
|
||||
|
||||
Default:
|
||||
|
||||
```vim
|
||||
let g:targets_jumpRanges = 'bb bB BB aa Aa AA' ~
|
||||
```
|
||||
|
||||
Defines an unordered, space separated list of range types which can be used to
|
||||
customize the jumplist behavior (see documentation on seek ranges). It
|
||||
controls whether or not to add the cursor position prior to selecting the text
|
||||
object to the jumplist.
|
||||
|
||||
The default setting adds the previous cursor position to the jumplist if the
|
||||
target that was operated on doesn't intersect the cursor line. That means it
|
||||
adds a jumplist entry if the target ends above the cursor line or starts below
|
||||
the cursor line.
|
||||
|
||||
Some other useful example settings (or build your own!):
|
||||
|
||||
Never add cursor position to jumplist:
|
||||
```vim
|
||||
let g:targets_jumpRanges = '' ~
|
||||
```
|
||||
|
||||
Always add cursor position to jumplist:
|
||||
```vim
|
||||
let g:targets_jumpRanges = 'cr cb cB lc ac Ac lr rr ll lb ar ab lB Ar aB Ab AB rb al rB Al bb aa bB Aa BB AA' ~
|
||||
```
|
||||
|
||||
Only add to jumplist if cursor was not inside the target:
|
||||
```vim
|
||||
let g:targets_jumpRanges = 'rr rb rB bb bB BB ll al Al aa Aa AA' ~
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- [Repeating an operator-pending mapping forgets its last count.][repeatcount]
|
||||
Works since Vim 7.4.160
|
||||
|
||||
## Issues
|
||||
|
||||
- [Empty matches can't be selected because it is not possible to visually select
|
||||
zero-character ranges.][emptyrange]
|
||||
- Forcing motion to work linewise by inserting `V` in `dVan(` doesn't work
|
||||
for operator-pending mappings. [See `:h o_v`][o_v].
|
||||
- Report issues or submit pull requests to
|
||||
[github.com/wellle/targets.vim][targets].
|
||||
|
||||
## Todos
|
||||
|
||||
Create more mappings to support commands like `danw` or `danp` to delete the
|
||||
next word or paragraph.
|
||||
|
||||
[cheatsheet]: cheatsheet.md
|
||||
[textobjects]: http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
|
||||
[operator]: http://vimdoc.sourceforge.net/htmldoc/motion.html#operator
|
||||
[repeat]: http://vimdoc.sourceforge.net/htmldoc/repeat.html#single-repeat
|
||||
[neobundle]: https://github.com/Shougo/neobundle.vim
|
||||
[vundle]: https://github.com/gmarik/vundle
|
||||
[vim-plug]: https://github.com/junegunn/vim-plug
|
||||
[pathogen]: https://github.com/tpope/vim-pathogen
|
||||
[repeatcount]: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/G4SSgcRVN7g
|
||||
[emptyrange]: https://groups.google.com/forum/#!topic/vim_use/qialxUwdcMc
|
||||
[targets]: https://github.com/wellle/targets.vim
|
||||
[o_v]: http://vimdoc.sourceforge.net/htmldoc/motion.html#o_v
|
||||
Loading…
Add table
Add a link
Reference in a new issue