mirror of
https://github.com/mhinz/vim-galore.git
synced 2025-02-24 01:59:28 +08:00
Basics: add "Motions? Operators? Text objects?"
This commit is contained in:
parent
25f32cefb3
commit
a3fd2d80d4
@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
|
|||||||
- Basics: [Quickfix and location lists?](README.md#quickfix-and-location-lists)
|
- Basics: [Quickfix and location lists?](README.md#quickfix-and-location-lists)
|
||||||
- Basics: [Registers?](README.md#registers)
|
- Basics: [Registers?](README.md#registers)
|
||||||
- Basics: [Autocmds?](README.md#autocmds)
|
- Basics: [Autocmds?](README.md#autocmds)
|
||||||
|
- Basics: [Motions? Operators? Text objects?](README.md#motions-operators-text-objects)
|
||||||
- Quirks: [Newline used for NUL](README.md#newline-used-for-nul)
|
- Quirks: [Newline used for NUL](README.md#newline-used-for-nul)
|
||||||
- Quirks: [Bracketed paste (or why do I have to set 'paste' all the time?)](README.md#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time)
|
- Quirks: [Bracketed paste (or why do I have to set 'paste' all the time?)](README.md#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time)
|
||||||
- Plugins: [New section "Commenters"](README.md#commenters)
|
- Plugins: [New section "Commenters"](README.md#commenters)
|
||||||
|
38
README.md
38
README.md
@ -18,6 +18,7 @@ added every day. Things about to be added can be found here:
|
|||||||
- [Mappings?](#mappings)
|
- [Mappings?](#mappings)
|
||||||
- [Mapleader?](#mapleader)
|
- [Mapleader?](#mapleader)
|
||||||
- [Registers?](#registers)
|
- [Registers?](#registers)
|
||||||
|
- [Motions? Operators? Text objects?](#motions-operators-text-objects)
|
||||||
- [Autocmds?](#autocmds)
|
- [Autocmds?](#autocmds)
|
||||||
- [Quickfix and location lists?](#quickfix-and-location-lists)
|
- [Quickfix and location lists?](#quickfix-and-location-lists)
|
||||||
- [Colorschemes?](#colorschemes)
|
- [Colorschemes?](#colorschemes)
|
||||||
@ -252,6 +253,43 @@ checking `:reg`, so you can see what's actually happening.
|
|||||||
**Fun fact**: In Emacs "yanking" stands for pasting (or _reinserting previously
|
**Fun fact**: In Emacs "yanking" stands for pasting (or _reinserting previously
|
||||||
killed text_) not copying.
|
killed text_) not copying.
|
||||||
|
|
||||||
|
#### Motions? Operators? Text objects?
|
||||||
|
|
||||||
|
**Motions** move the cursor. You all know `h`/`j`/`k`/`l`. Or `w` and `b`. Even
|
||||||
|
`/` is a motion. They also take a count. `2?the<cr>` jumps to the second last
|
||||||
|
occurence of "the".
|
||||||
|
|
||||||
|
See `:h navigation` and everything below for all available motions.
|
||||||
|
|
||||||
|
**Operators** act on a region of text, e.g. `d`, `~`, `gU`, `>` to name just a
|
||||||
|
few. They get used in two contexts, either in normal or visual mode. In normal
|
||||||
|
mode, operators come first followed by a motion, e.g. `>j`. In visual mode,
|
||||||
|
operators simply act on the selection, e.g. `Vjd`.
|
||||||
|
|
||||||
|
Like motions, operators take a count, e.g. `2gUw` makes the rest of the current
|
||||||
|
word and the next one uppercase. Since motions and operators take counts,
|
||||||
|
`2gU2w` works just as well and executes `gU2w` twice.
|
||||||
|
|
||||||
|
See `:h operator` for all available operators.
|
||||||
|
|
||||||
|
**Text objects** act on the surrounding area, opposed to motions that act into
|
||||||
|
one direction. Actually they work on objects, e.g. a whole word, a whole
|
||||||
|
sentence, everything between parentheses, and so on.
|
||||||
|
|
||||||
|
Text objects can't be used to move the cursor in normal mode, because even the
|
||||||
|
most-skilled cursors can't jump into two directions at the same time. It works
|
||||||
|
in visual mode though, because then one side of the object is already selected
|
||||||
|
and the cursor simply jumps to the other side.
|
||||||
|
|
||||||
|
Text objects start with either `i` or `a` followed by a character denoting the
|
||||||
|
object. With `i` it only acts on the object itself, with `a` on the object plus
|
||||||
|
trailing whitespace. E.g. `diw` deletes the current word and `ci(` changes
|
||||||
|
everything between parentheses.
|
||||||
|
|
||||||
|
Text objects don't take a count.
|
||||||
|
|
||||||
|
See `:h text-objects` for all available text objects.
|
||||||
|
|
||||||
#### Autocmds?
|
#### Autocmds?
|
||||||
|
|
||||||
On many occasions, Vim emits events. You hook into these events by using
|
On many occasions, Vim emits events. You hook into these events by using
|
||||||
|
Loading…
x
Reference in New Issue
Block a user