Operators
Definição curta: Operators são comandos que executam uma ação (como deletar, copiar, mudar) sobre um motion ou objeto de texto. São a cola entre navegação e manipulação de texto.
Antes de começar
- Saber sair do Neovim (
:q) e navegar em modo normal
O que você vai aprender
- Explicar Operators de edição com suas palavras
- Explicar Operators de recuo com suas palavras
- Explicar Operators de caso com suas palavras
- Localizar o assunto desta página no
:helpdo seu próprio Neovim
O que é
Operators são a segunda metade do modelo modal do Neovim. Enquanto motions movem o cursor, operators executam ações. A sintaxe geral é: operator + motion = ação.
Este design permite combinar operadores com qualquer movimento, criando um sistema extensível onde cada operator funciona com todos os motions.
Índice de sub-tópicos
- Operators de edição
- Operators de recuo
- Operators de caso
- Operators de Yank
- Combinações com motions
- Operators em modo visual
Operators de edição
| Operator | Descrição | Modo Visual |
|---|---|---|
d | Delete (cortar) | Sim |
c | Change (deletar e entrar em Insert) | Sim |
y | Yank (copiar) | Sim |
p | Put/Colar após cursor | Não |
P | Put/Colar antes do cursor | Não |
x | Deletar caractere sob cursor | Não |
s | Substituir (delete e Insert) | Não |
Diagrama de fluxo de edição
flowchart TD
A["operator\nd, c, y, ~, >, <"] --> B["motion ou\ntexto-objeto"]
B --> C["Ação aplicada\nno intervalo"]
C --> D{Modo visual?}
D -->|Sim| E["Açãoolinada\nem toda seleção"]
D -->|Não| F["Ação no\nintervalo do motion"]Operators de recuo
| Operator | Descrição |
|---|---|
> | Indentar à direita |
< | Indentar à esquerda |
= | Auto-indentar |
gq | Formatar texto (reflow) |
Exemplo de recuo
foo
bar
baz
Com >j (indentar linha atual e uma abaixo):
foo
bar
bazOperators de caso
| Operator | Descrição |
|---|---|
~ | Inverter caso (maiúscula/minúscula) |
gU | Maiúsculas (uppercase) |
gu | Minúsculas (lowercase) |
g~ | Inverter caso |
Combinações comuns
| Comando | Resultado |
|---|---|
gUU | Linha inteira em maiúsculas |
guu | Linha inteira em minúsculas |
gqq | Reformular linha |
~h | Inverter caso do caractere atual |
Operators de Yank
O operator y copia texto para os registradores. O texto pode ser colado com p (após cursor) ou P (antes do cursor).
| Comando | Descrição |
|---|---|
yy | Copiar linha inteira |
yw | Copiar palavra |
y$ | Copiar até fim da linha |
y0 | Copiar até início da linha |
yf<char> | Copiar até <char> |
Fluxo de Yank e Put
sequenceDiagram
participant Buffer as Buffer
participant Register as Register
participant Cursor as Cursor
Cursor->>Buffer: yy (yank linha)
Buffer-->>Register: "a = linha copiada
Note over Register: Registrador "a
Cursor->>Buffer: p (put após)
Register-->>Buffer: Cola após cursorCombinações com motions
A força real dos operators está nas combinações com motions.
Deletar
| Comando | Significado |
|---|---|
dw | Deletar palavra |
d$ | Deletar até fim da linha |
d0 | Deletar até início da linha |
dd | Deletar linha inteira |
dG | Deletar até fim do arquivo |
dgg | Deletar até início do arquivo |
df<char> | Deletar até <char> incluso |
dt<char> | Deletar até <char> exclusivo |
Change (substituir)
| Comando | Significado |
|---|---|
cw | Alterar palavra |
c$ | Alterar até fim da linha |
cc | Alterar linha inteira |
Operators em modo visual
No modo Visual, operators aplicam-se a toda a seleção ao invés de seguir a sintaxe operator+motion.
Visual: selection -> operator
Normal: operator -> motionVocê aprendeu
- Operators de edição
- Operators de recuo
- Operators de caso
- Operators de Yank
- Combinações com motions
Perguntas para reflexão
- O que Operators de edição resolve, e o que se perde sem isso?
- O que Operators de recuo resolve, e o que se perde sem isso?
- O que Operators de caso resolve, e o que se perde sem isso?
- Qual parte desta página você conseguiria reproduzir sem consultar, direto no editor?
Artigos relacionados
Veja também
- Motions — Comandos de navegação
- Text Objects — Seleção estrutural
- Registers — Armazenamento de texto copiado
Referências
- Neovim Operator Documentation — Documentação oficial
- Vim Text Objects — Referência completa