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 :help do 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

    OperatorDescriçãoModo Visual
    dDelete (cortar)Sim
    cChange (deletar e entrar em Insert)Sim
    yYank (copiar)Sim
    pPut/Colar após cursorNão
    PPut/Colar antes do cursorNão
    xDeletar caractere sob cursorNão
    sSubstituir (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

    OperatorDescrição
    >Indentar à direita
    <Indentar à esquerda
    =Auto-indentar
    gqFormatar texto (reflow)

    Exemplo de recuo

    foo
      bar
    baz

    Com >j (indentar linha atual e uma abaixo):

      foo
      bar
    baz

    Operators de caso

    OperatorDescrição
    ~Inverter caso (maiúscula/minúscula)
    gUMaiúsculas (uppercase)
    guMinúsculas (lowercase)
    g~Inverter caso

    Combinações comuns

    ComandoResultado
    gUULinha inteira em maiúsculas
    guuLinha inteira em minúsculas
    gqqReformular linha
    ~hInverter 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).

    ComandoDescrição
    yyCopiar linha inteira
    ywCopiar palavra
    y$Copiar até fim da linha
    y0Copiar 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 cursor

    Combinações com motions

    A força real dos operators está nas combinações com motions.

    Deletar

    ComandoSignificado
    dwDeletar palavra
    d$Deletar até fim da linha
    d0Deletar até início da linha
    ddDeletar linha inteira
    dGDeletar até fim do arquivo
    dggDeletar até início do arquivo
    df<char>Deletar até <char> incluso
    dt<char>Deletar até <char> exclusivo

    Change (substituir)

    ComandoSignificado
    cwAlterar palavra
    c$Alterar até fim da linha
    ccAlterar 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 -> motion

    Você aprendeu

    • Operators de edição
    • Operators de recuo
    • Operators de caso
    • Operators de Yank
    • Combinações com motions

    Perguntas para reflexão

    1. O que Operators de edição resolve, e o que se perde sem isso?
    2. O que Operators de recuo resolve, e o que se perde sem isso?
    3. O que Operators de caso resolve, e o que se perde sem isso?
    4. Qual parte desta página você conseguiria reproduzir sem consultar, direto no editor?

    Artigos relacionados

    Veja também

    Referências