"Dap" exclui tudo?
Eu estou familiarizado com os comandos "dd" e "d {motion}", mas não consigo encontrar "dap" no help.txt do vim. O que o "dap" faz no modo normal e por quê? (Como alternativa, como posso descobrir esse tipo de coisa por mim mesmo?)
— lsusr
"dap" na verdade não exclui tudo. Por exemplo, tente colocar isso no seu buffer:
Em seguida, coloque o cursor em '2' e digite "dap". Vai deixar o '1 e o 3'.
Isso ocorre porque "dap" exclui um parágrafo . De fato, esse é realmente o mnemônico: "(D) elete (A) (P) parágrafo". Você pode vê-lo na ajuda em :h ap:
*v_ap* *ap*
ap          "a paragraph", select [count] paragraphs (see
Isso é chamado de "objeto de texto". Você pode ler sobre isso em:, :h text-objectsou pode ler este artigo incrível sobre objetos de texto.
De qualquer maneira, a idéia básica dos objetos de texto é que você esteja definindo os limites de um objeto e, em seguida, aplique comandos a todo esse objeto, mesmo quando você estiver no meio dele. Por exemplo, tenho certeza que você sabe que pode usar dwpara excluir uma palavra. Mas e se você estiver nesse cenário?
Cursor: ^
Se você digitar dw, ainda terá a woesquerda. Se você digitar diw, isso será excluído dentro da palavra ; portanto, na maioria das vezes, é equivalente a digitar bdw.
Como posso descobrir esse tipo de coisa por mim mesmo?
Você teve a idéia básica! Verificar a ajuda é sempre um bom começo. Nesse caso, você poderia ter percebido que dé um operador; portanto, a ajuda que realmente estava procurando era o argumento para o operador, neste caso ap.
+1! Para ser pedante: diw deixa o espaço à direita, enquanto bdw não. diw seria o mesmo que bde ;-) O pingente para bdw é realmente daw, que usa o mesmo "a" que o traço na pergunta.
@ M.Herzkamp: E ainda assim, diwe bdeainda não são os mesmos: se o cursor estiver no início de uma palavra. Da mesma forma, se o cursor estiver em um espaço entre as palavras, ele bdwexcluirá a palavra à esquerda e dawa palavra à direita. Acho que a resposta original "na maior parte ..." é provavelmente a melhor que obteremos em termos dessas equivalências.